CIサーバーでbashスクリプトを実行するとエラーコード141が発生しますが、ローカルでは再現できません。
PIPEFAIL
数回検索した結果、エラー141がaを意味するように聞こえます。
set -o pipefail
スクリプトの上部にあります。
しかし、パイプラインが失敗する根本的なエラーコードが何であるかを知りたいです。失敗したコマンドのエラーコードを抽出する方法はありますか?それとも、パイプを使用せずにこれを達成するためにスクリプトを再構成する必要がありますか?
ベストアンサー1
bashなので、PIPESTATUSを考えることができます。
command exit 1 | command exit 2 | command exit 3 | foobar; declare -p PIPESTATUS
見つかりません警告の後、次のfoobar
値を取得する必要があります。PIPESTATUS
declare -a PIPESTATUS=([0]="1" [1]="2" [2]="3" [3]="127")