我有一个看起来像这样的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