私は次のif / thenステートメントを見つけました。
if ! foo ; then
echo "blah"
exit 1
fi
具体的にはどういう意味ですかif !
? 「foo
結果が正しくないとどうなりますか?」 「終了コードがfoo
ゼロでなければどうなりますか?」
ベストアンサー1
!
コマンド終了状態の意味を逆にします。これは非POSIXシェル構文の一部ですif
。POSIX仕様:
予約語なら!パイプラインの前でない終了状態は、パイプラインで指定された最後のコマンドの終了状態でなければなりません。それ以外の場合、終了ステータスは最後のコマンドの終了ステータスを論理的に否定する必要があります。つまり、最後のコマンドが0を返した場合は終了ステータスは1でなければならず、最後のコマンドが0より大きい値を返した場合は終了ステータスは0でなければなりません。