SIGPIPE以降の潜在的なエラー

SIGPIPE以降の潜在的なエラー

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")

おすすめ記事