「もし!」とはどういう意味ですか?意味は?

「もし!」とはどういう意味ですか?意味は?

私は次のif / thenステートメントを見つけました。

if ! foo ; then
        echo "blah" 
        exit 1
fi

具体的にはどういう意味ですかif !? 「foo結果が正しくないとどうなりますか?」 「終了コードがfooゼロでなければどうなりますか?」

ベストアンサー1

!コマンド終了状態の意味を逆にします。これは非POSIXシェル構文の一部ですifPOSIX仕様:

予約語なら!パイプラインの前でない終了状態は、パイプラインで指定された最後のコマンドの終了状態でなければなりません。それ以外の場合、終了ステータスは最後のコマンドの終了ステータスを論理的に否定する必要があります。つまり、最後のコマンドが0を返した場合は終了ステータスは1でなければならず、最後のコマンドが0より大きい値を返した場合は終了ステータスは0でなければなりません。

おすすめ記事