1、重定向的两项应用:
a.log的写入:执行命令时,使用
sh script.sh>log.txt
即可使用log.txt记下文件执行状况
其中要注意的是,当使用>时为覆盖写入,使用>>时为添加写入
b.脚本的自动生成
e.g.使用类似以下的方法即可生成脚本
echo 'date=$1'>script.sh
echo 'USER=AAA'>>script.sh
echo 'PASSWORD=BBB'>>script.sh
echo 'INS=ABCDE'>>script.sh
echo 'Ret=`sqlplus -S 192.16.12.11/test "$USER/$PASSWORD@$INS" <<eof '>>script.sh
echo '@Sql_script.sql $date' >>script.sh
echo 'eof ` '>>script.sh
2、grep语句的简单总结
使用grep 可以进行匹配搜索,例如,
ps -ef | grep *.sh
可以搜索正在执行的脚本进程
3、目前使用过的awk
awk -F : '{print $1}'
-F指定分隔符为':',' '内指定引用代码块,{}为命令代码块,内部print $1 表示输出遇到的被分隔符所分隔的第一个内容
awk –F = '/^db_user_ods/{print $2}'
指定分隔符为=, // 表示搜索匹配的选项,即搜索到匹配db_user_ods的行后在{}中输出该行的第二个内容,有次
(‘^’的意义?)
详情见http://blog.chinaunix.net/uid-23302288-id-3785105.html
4、常用的大小写转换语句
UPPERCASE=$(echo $VARIABLE | tr '[a-z]' '[A-Z]') #注意集合间的空格
LOWERCASE=$(echo $VARIABLE | tr '[A-Z]' '[a-z]')
5、mv 的多文件移动
使用
mv file newpath
即可。其中newpath为多个文件将被移动的指定目录位置
6、循环读取列表实例(从而一次执行多个脚本或使用一个脚本执行多个配置/参数)
cat nt_table.list | while read line
do
cd /data/table
sh nt_subtable.sh $1 $line
done
注意此处line为变化的参数,其来源为nt_table.list的每一行