我使用errexit
和pipefail
创建了一个Bash脚本:
set -e
set -o pipefail
diff $FILE <($COMMAND)
如果$COMMAND
设置失败,errexit
不会终止diff
。如果出现错误,diff
会生成一个补丁文件,好像$COMMAND
的输出为空。
如果diff
失败,如何终止$COMMAND
生成错误?
答案 0 :(得分:1)
在这里使用临时文件有两个原因:
$COMMAND
更容易发现错误。diff
重新读取部分文件。trap 'rm file2' EXIT
if $COMMAND > file2; then
diff "$FILE" file2
else
exit 1
fi