繁体   English   中英

如何防止patch命令退出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

它在patch命令完成后立即完成/退出。 我该如何预防,阻止或忽略这一点。 我玩过在子shell中运行命令的过程,但这并不能解决问题。

bash -c“补丁...”

如果您不希望特定命令触发set -e指定的退出,则可以将其取反。

! patch ...

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

除了否定之外,您还可以始终返回0退出状态:

patch ... ||:

要么

patch ... || true

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM