Bash忽略特定命令的错误

我使用以下选项

设置-o管道故障
set-e

在bash脚本中,在出现错误时停止执行。我有大约100行脚本正在执行,我不想检查脚本中每一行的返回代码

但是对于一个特定的命令,我想忽略这个错误。我该怎么做

解决方案:

特定脚本| |正确

例如:

$cat/tmp/1.sh
特殊脚本()
{
错误的
}
set-e
回声一号
特殊脚本| |正确
回声二号
特殊_脚本
回声三号
$bash/tmp/1.sh
一
二

三个将永远不会打印

另外,我想补充一点,当启用pipefail时,
shell认为整个管道具有非零出口代码就足够了
当管道中的一个命令具有非零退出代码时(当pipefail关闭时,它必须是最后一个命令)

$set-o管道故障
$false | true;回声$?
1.
$set+o管道故障
$false | true;回声$?
0

发表评论