[英]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.