AND-ORリスト演算子

[ ! -x /usr/local/sbin/portsnap ] && exit 0

&& は倫理積らしいので条件に当てはまる場合には exit に 0 を返す、つまりシェルスクリプトをその場で終了って事ですね。

この倫理積とかの言い回しがややこしくて脳内フィルターかけていないと、理解するどころか何を言ってるのがわかりません。

私も見た目にだまされて(?)、&&がよくわかってませんでした。(終了コードの論理積を返すの?とか思ってた)man shの

&& は最初のコマンドを実行し、もし最初のコマンドの終了ステータスが 0 ならば次のコマンドを実行します。

を読んで左側のコマンドがtestの場合&&なら条件に当てはまる場合には右側のコマンドが実行されて、||なら条件に当てはまらない場合に右側のコマンドが実行されるという右側のコマンドが実行されるという条件が変わる記号なんだと理解してからは&&や||を使える様になった気がします。

あと同じ人の日記id:cocelo:20060707:1152260319に

余談ですが、たまに下記のようなフレースを見かけることがあります。

ぐぐるんじゃなくてmanを見ろ。

これにはいろいろと深い意味合いが込められているんだなと感じた今日この頃です。

と書いてあった。耳が痛いと思った。