【问题标题】:Stop on first error [duplicate]停止第一个错误[重复]
【发布时间】:2011-03-29 07:41:30
【问题描述】:

可能重复:
Automatic exit from bash shell script on error

如何在第一次命令失败时停止 bash,而不在我的代码中添加这样的内容?

some_prog || exit 1
some_other_prog || exit 1

【问题讨论】:

    标签: bash


    【解决方案1】:

    也许你想要set -e:

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

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

    【讨论】:

    • 注意set -e 陷阱:mywiki.wooledge.org/BashFAQ/105
    • @Kris 谢谢,这让我对 linux mint 有点印象。它默默地退出脚本,没有任何消息。所以我删除了 set -e 用法。
    • @LukeW 这是正常的。但是,退出代码将非零,表示错误。此外,任何失败的程序通常都会自行打印错误消息,请尝试使用 shebang + set -e + 例如ls nope。您会收到一条明确的错误消息,并且脚本会提前失败。优秀的软件。
    • 链接的副本也有很好的答案stackoverflow.com/a/2871034/362951
    猜你喜欢
    • 2016-05-18
    • 2012-11-14
    • 2014-12-16
    • 2016-07-12
    • 1970-01-01
    • 2018-02-11
    • 2011-02-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多