如何防止 patch 命令退出 bash shell?



我有一个看起来像这样的bash脚本:

#!/bin/bash
set -e
function patchStuff {
patch --unified --input=<...>.patch --strip=0 --forward --reject-file=<...>.patch.rej --verbose --dry-run
}
function doMoreThings {}
patchStuff
doMoreThings # never reached
exit 0

它在patch命令完成后立即完成/退出。我怎样才能防止、阻止或忽视这一点。我尝试在子外壳中运行命令,但这并没有解决问题。

砰 -c "补丁...">

如果不希望特定命令触发set -e指定的退出,则可以否定它。

! patch ...

POSIX 和bash手册指定set -e不适用于已被!否定的命令。

而不是否定你也总是可以返回 0 退出状态:

patch ... ||:

patch ... || true

最新更新