簡體   English   中英

如何在bash中傳播非零退出代碼以進行輸入重定向?

[英]How to propagate non-zero exit code for input redirection in bash?

我知道用於傳播管道出口代碼的“ set -o pipefail”。 但是,我想對輸入重定向做類似的事情。 具體來說,我希望這種情況發生:

$ cat <(echo abc; exit 1) 
abc
$ echo $?
1

當前的行為是最后一行是'0'而不是'1'。

我該如何完成? 不,我不能使用管道。 我給出的示例只是一個簡化的測試用例。 在實踐中,我從多個來源獲取輸入。

恐怕輸入重定向無法做到這一點。 也許提供輸入的進程將其退出狀態寫到文件中,然后再檢查?

我在這里使用@Lars建議的使用臨時文件的示例:

tmp=`mktemp`; sort -mk1 <(zcat 1.gz || rm -f $tmp) <(zcat 2.gz || rm -f $tmp) && rm $tmp

返回代碼將為“成功”(零)iff排序,並且兩個zcat成功。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM