set -o pipefail
我像往常一样在脚本中使用。这工作得很好,并且记录如下
curl ... | jq ... | psql ...
但是,有没有办法确定管道中的哪个命令实际上使整个过程失败了?
我正在研究此问题的唯一目的是更简洁的日志记录,但找不到任何相关文档。
答案1
使用PIPESTATUS
内置数组:
true | true | false | true | true
declare -p PIPESTATUS
declare -a PIPESTATUS=([0]="0" [1]="0" [2]="1" [3]="0" [4]="0")