【发布时间】:2018-07-07 16:02:27
【问题描述】:
我有一个 bash 脚本,该脚本仅在获取时使用。
我想在出现任何错误时自动返回,类似于set -e 所做的。
但是设置 set -e 对我不起作用,因为它也会退出用户 shell。
现在,对于每个命令,我正在处理像 command || return 1 这样的手动返回。
【问题讨论】:
-
aside:
somecommand || return将返回失败命令的退出状态,这可以说比硬编码1更有用。 (command是实际内置命令的名称,顺便说一句,它不适合用作占位符)。 -
...也就是说,
set -e是 prone to nonintuitive and surprising behaviors(如果赶时间,请跳过寓言并尝试回答下面的练习)并且有 wildly different and incompatible implementations between different shells。你现在所做的——|| return一遍又一遍——可以说是正确的事情。