簡體   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