shell脚本中,我们希望一些命令能按顺序执行,且根据前面命令的执行结果来后面的命令。我们可以用&&、||等符号完成上述功能。
&&符号作用
&&符号的使用形式: 命令1 && 命令2
& &左边的命令(命令1)返回真(即返回0,成功被执行) 后,& &右边的命令(命令 2)才能够被执行。
例:
自动化安装命令
./configure && make && make install
该命令会自动逐条执行命令,完成编译和安装过程。当前面的命令执行失败时,后面的命令会停止运行。
||符号作用
||符号的使用形式: 命令1 || 命令2
如果 | |左边的命令(命令 1)未执行成功,那么就执行 | |右边的命令 (命令2)
例:
./foo_start || exit
上述命令执行foo_start文件,如果执行失败,则退出shell。
()和{}符号作用
()和{}符号会将几条命令绑定在一起,作为一个整体执行。()在当前shell中执行一组命令,{}在子shell中执行一组命令。
()和{}符号的使用形式: (命令1 ; 命令2 ; 命令3) {命令1 ; 命令2 ; 命令3}
例:
./foo_start || (echo "foo_start fail"; exit)
foo_start执行失败后,会输出“foo_start fail”然后退出shell。