@大括号的使用
cat{err.log,test1.sh,test2.txt}>RedirectFile.txt #将大括号中三个文件重定向到RedirectFile.txt
cat{err.log,test1.sh,test2.txt}|more #将大括号中三个文件重定向到屏幕
cat{err.log,test1.sh,test2.txt} #将大括号中三个文件重定向到屏幕
注意大括号中的项目之间使用逗号分隔,并且不能加空格,否则报错。
@括号的用途@
if [ ! -s$ONEDAYRESULT ]; then
(
cd$OUTPUT_PATH/$DATE1/
filelist=`lsfilter.*`
sort -m$filelist --temporary-directory=./
)>$ONEDAYRESULT.imcomplete
mv$ONEDAYRESULT.imcomplete $ONEDAYRESULT
fi
作用总结:把括号中的所有表达式作为一个子进程,本例中,括号内的结果会全部传到下一个管道,而不是只有最后一个表达式的结果会传到下一个管道。
@( )与{ }的区别@
命令群组
我们在shell操作上,需要在一定条件下一次执行多个命令, 也就是说,要么不执行,要么就全执行,而不是每次依序的判断是否要执行下一个命令。
圆括号( )
( )将command group置于sub-shell去执行,也称nestedsub-shell。
花括号{}
{ }则是在同一个shell内完成,也称为non-named commandgroup
@function与()与{}
所谓的function ,就是用一个名字去命名一个command group,然后再调用这个名字去执行command group
定义方式
定义一
functionfunction_name {
command1
command2
command3
....
}
定义二
function_name() {
command1
command2
command3
....
}