如何防止补丁命令退出 bash shell?
How can I prevent the patch command from exiting a 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
它 completes/exits 在 patch
命令完成之后。我怎样才能防止、停止或忽略它。我在子 shell 中使用了 运行 命令,但没有成功。
bash -c "patch ..."
如果您不希望特定命令触发 set -e
指定的退出,您可以取消它。
! patch ...
POSIX 和 bash
手册指定 set -e
不适用于已被 !
否定的命令。
除了否定你也可以总是return0退出状态:
patch ... ||:
或
patch ... || true
我有一个 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
它 completes/exits 在 patch
命令完成之后。我怎样才能防止、停止或忽略它。我在子 shell 中使用了 运行 命令,但没有成功。
bash -c "patch ..."
如果您不希望特定命令触发 set -e
指定的退出,您可以取消它。
! patch ...
POSIX 和 bash
手册指定 set -e
不适用于已被 !
否定的命令。
除了否定你也可以总是return0退出状态:
patch ... ||:
或
patch ... || true