停止第一个错误

Mat*_*ner 288 bash

可能重复:
出错时自动退出bash shell脚本

如何在第一次命令失败时停止bash,而不是在我的代码中放入这样的东西?

some_prog || exit 1
some_other_prog || exit 1
Run Code Online (Sandbox Code Playgroud)

Alo*_*hal 526

也许你想要set -e:

www.davidpashley.com/articles/writing-robust-shell-scripts.html#id2382181:

这告诉bash如果任何语句返回非真实的返回值,它应该退出脚本.使用-e的好处是它可以防止错误滚雪球成为可能早先发现的严重问题.同样,为了便于阅读,您可能需要使用set -o errexit.

  • 请注意`set -e` gotchas:http://mywiki.wooledge.org/BashFAQ/105 (102认同)
  • 链接的副本也有一个很好的答案/sf/answers/200972411/ (5认同)
  • @LukeW这是正常的.但是,退出代码将为非零,表示错误.任何失败的程序通常会自行打印错误信息,只需使用shebang +`set -e` +例如`ls nope`.您会收到一条明确的错误消息,并且脚本会提前失败.优秀的软件. (3认同)
  • @Scorb 使用 `set +e` (2认同)