复合命令

时间:2019-04-16 23:59:05  来源:igfitidea点击:

复合命令是以下语法格式之一:

( list )
( command1; command2 )
{ command1; command2 }

为什么使用( command1; command2 ) 语法

在下面的例子中,我们运行了多个命令:

hostname ; date ; who | wc -l

将结果保存到文件中

hostname ; date ; who | wc -l > /tmp/output.txt
cat /tmp/output.txt

所有命令都运行了,但只有管道的最后一个输出保存到了文件中。

要将所有命令的输出都保存到文件中,需要像下面这样:

( hostname ; date ; who | wc -l ) > /tmp/output.txt
cat /tmp/output.txt

所有在**括号()**中的命令都将在 子shell中运行。

为什么要使用{ command1; command2; }语法

这种语法允许您在当前shell环境中运行所有命令。
就像一个组命令一样运行:

[ $# -eq 0 ] && { echo "Usage: ##代码## filename"; exit 1; }