|| を使用して条件付きコマンドを実行すると、以前に失敗したコマンドからエラー・メッセージを取得できますか?

|| を使用して条件付きコマンドを実行すると、以前に失敗したコマンドからエラー・メッセージを取得できますか?

ヘルパー機能があります。

function error_exit
{
    /opt/aws/bin/cfn-signal ...
    exit 1
}

このヘルパー関数はエラーを通知するために使用されます。使用例は次のとおりです。

/opt/aws/bin/cfn-init -s .. || error_exit 'Failed to run cfn-init'

このcfn-initコマンドには問題に関連しない多くのパラメーターが必要です。コマンドがnull以外の値を返し、エラー出力にエラーメッセージが表示される場合は、エラーメッセージを取得してerror_exitメソッドにパラメータとして含めたいと思います。可能ですか?そうでなければ、ソースエラーメッセージを取得するためにbashでヘルパーメソッドをどのように実装しますか?

ベストアンサー1

エラー出力をファイルにリダイレクトしてから、その出力を取得できます。

trap "rm -f /tmp/cfn-error.txt" 0 1 2 3 15
/opt/aws/bin/cfn-init -s ... 2>/tmp/cfn-error.txt ||
    error_exit $(</tmp/cfn-error.txt)

常に乱雑な部分をクリーンアップする必要があるので、作成した一時ファイルをすべて削除することを忘れないでください。

おすすめ記事