我当前需要自动执行需要执行5个命令的任务,即使任何命令失败,所有下一个命令都应该执行,当前如果第4个命令失败,shell脚本退出并且不运行第5个命令。
那么,我该怎么办呢,即使当前命令失败,shell脚本也会运行所有下一个命令?
答案 0 :(得分:4)
嗯,下面的代码出了什么问题?
#!/bin/bash
cmd1
cmd2
cmd3
cmd4
cmd5
答案 1 :(得分:4)
假设您有bash作为脚本解释器 (或/ bin / sh是bash的符号链接), 请检查您的脚本是否没有
set -e
代码中的任何地方。
答案 2 :(得分:3)
我愿意
|| true
示例:
( set -e; false ; echo not here; )
( set -e; false || true ; echo still here; )
示例:
command1 || true
command2 || true
command3 || true
command4 || true
command5 || true
这样你可以保留-e标志,这是一面好旗。
答案 3 :(得分:1)
“陷阱”命令在这里可能会有所帮助: