我是shell脚本方面的菜鸟。如果命令失败,我想打印一条消息并退出脚本。我试过了:
my_command && (echo 'my_command failed; exit)
但它不起作用。它会继续执行脚本中此行之后的指令。我正在使用Ubuntu和bash。
尝试:
my_command || { echo 'my_command failed' ; exit 1; }
四个变化:
&&
||
{ }
( )
;
exit
{
}
既然你要打印的消息,只有当命令失败(非零值退出)退出你需要一个||不是&&。
cmd1 && cmd2
将cmd2在cmd1成功时运行(退出值0)。在哪里
cmd2
cmd1
0
cmd1 || cmd2
将cmd2在cmd1失败(退出值非零)时运行。
使用( )可以使其中的命令在 子外壳中 运行,然后exit从那里调用a 会导致您退出子外壳而不是原始外壳,因此在原始外壳中继续执行。
为了克服这种使用 { }
bash需要最后两个更改。