我想在脚本的一部分内运行一系列命令,如果有返回非零退出状态则停止。而且,在同一个脚本中,我希望最终命令始终运行,无论之前是否有任何失败。
#!/usr/bin/env bash
set -e
(
# various commands go here
) &> /var/log/logfile
final_command_that_always_runs /var/log/logfile
这可能吗?
也许我可以只为脚本的一个 () 部分设置“-e”?
我想在脚本的一部分内运行一系列命令,如果有返回非零退出状态则停止。而且,在同一个脚本中,我希望最终命令始终运行,无论之前是否有任何失败。
#!/usr/bin/env bash
set -e
(
# various commands go here
) &> /var/log/logfile
final_command_that_always_runs /var/log/logfile
这可能吗?
也许我可以只为脚本的一个 () 部分设置“-e”?
Parens 调用子 shell,所以是的,您可以在其中设置选项,它们不会影响父 shell。
从问题提问者编辑:我已将其标记为答案,但我认为它需要一个演示 - 正如答案所说,我需要将 set -e 移动到括号内: