1

コマンドを実行して、失敗した場合はそのリターン コードを表示しようとしています。

if ! /bin/false
then
   tee >(mail -s "failed" $USER) <<EOF
     Failed with code $?
EOF
fi

上記は常に「0」をエコーし​​ますが、「1」が表示されることを期待しています。

以下は機能しますが、それほど単純ではなく、 とうまく連携しませんset -o errexit

/bin/false
ret=$?
if [ $ret -ne 0 ]
then
   tee >(mail -s "failed" $USER) <<EOF
     Failed with code $ret
EOF
fi
4

2 に答える 2

2

私はこのアプローチを提案します:

/bin/false || echo "Failed, return code = $?"
于 2013-07-24T18:07:28.277 に答える