或后执行多个Bash命令

时间:2018-11-09 21:21:19

标签: linux bash error-handling scripting

我正在编写一个Bash脚本来安装一些软件;有没有一种方法可以创建一个可以在“或”之后执行多个命令的衬板?基本上,我要进行错误检查的是这样的:

stmtprimeprime

我已经尝试过了,但是安装失败时它不会退出脚本,并且仍然会输出“安装成功”。关于如何编辑此方法以使其起作用的任何想法?

1 个答案:

答案 0 :(得分:4)

括号创建了一个子外壳,这是exit命令退出的地方。您需要使用大括号定义的命令 group

sudo apt-get install fortune || { echo "Installation failed" >&2; exit 1; }

(请注意最后一个分号和大括号周围的空格;所有这些都很重要。)

为使内容更具可读性,通常在||之后定义一个函数作为单个命令:

abort () { echo "Installation of $1 failed" >&2; exit 1; }

sudo apt-get install fortune || abort fortune