我正在使用以下选项
set -o pipefail
set -e
在 bash 脚本中,出现错误时停止执行。我有大约 100 行脚本正在执行,我不想检查脚本中每一行的返回代码。
但对于一个特定的命令,我想忽略该错误。我怎样才能做到这一点?
解决方案:
particular_script || true
Example:
$ cat /tmp/1.sh
particular_script()
{
false
}
set -e
echo one
particular_script || true
echo two
particular_script
echo three
$ bash /tmp/1.sh
one
two
three
永远不会被打印。
另外,我想补充一点,当pipefail
已开启,
shell 认为整个管道具有非零退出代码就足够了
当管道中的命令之一具有非零退出代码时(带有pipefail
关闭它必须是最后一个)。
$ set -o pipefail
$ false | true ; echo $?
1
$ set +o pipefail
$ false | true ; echo $?
0
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)