即使当前命令失败,如何编写运行下一个命令的shell脚本?

时间:2010-12-14 13:07:08

标签: linux shell

我当前需要自动执行需要执行5个命令的任务,即使任何命令失败,所有下一个命令都应该执行,当前如果第4个命令失败,shell脚本退出并且不运行第5个命令。

那么,我该怎么办呢,即使当前命令失败,shell脚本也会运行所有下一个命令?

4 个答案:

答案 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)

“陷阱”命令在这里可能会有所帮助:

trap