将命令分组和组合

外壳允许您对命令执行连接和分组以有条件地执行。每个命令都返回一个退出码,该退出码确定操作是成功还是失败。如果是 0,则命令成功,任何其他值都表示特定于该命令的一个错误。

以下列表显示可以如何将命令分组:

命令 1 ; 命令 2

顺序地执行这些命令。不检查退出码。以下行使用 cat 显示文件的内容,然后使用 ls 打印其文件属性,而不考虑退出码:

cat filelist.txt ; ls -l filelist.txt
命令 1 && 命令 2

如果左侧命令成功,则运行右侧命令(逻辑运算符 AND)。仅当上一个命令成功时,以下行才显示文件的内容并打印其文件属性(将其与列表中的上一项相比较):

cat filelist.txt && ls -l filelist.txt
命令 1 || 命令 2

当左侧命令失败时运行右侧命令(逻辑运算符 OR)。以下行仅当在 /home/tux/foo 中创建目录失败时才会在 /home/wilber/bar 中创建目录:

mkdir /home/tux/foo || mkdir /home/wilber/bar
funcname(){ ... }

创建外壳函数。您可以使用定位参数访问其自变量。以下行定义用于打印短消息的函数 hello

hello() { echo "Hello $1"; }

您可以如下调用此函数:

hello Tux

它会打印:

Hello Tux