「if」が不要な場合はいつですか?

「if」が不要な場合はいつですか?

一部のスクリプトでは、if次のように作成された条件文を表示できます。

if [ some_conditional_statement ]; then
    # do stuff
fi

または

[ some_conditional_statement ] && #do stuff

2番目の例は同じですが(do stuff部分は条件がtrueの場合にのみ実行されます)、次のように1つのコマンドのみを実行する必要がある場合にのみ役立ちます。

[ -f "/path/to/some/file" ] && . /path/to/some/file

それとも私が見逃した他の違いはありますか?

ベストアンサー1

さて、私は(またはbashで)本質的に副作用のないコマンドですが、条件を評価して適切な終了状態を提供することを理解したと思います。あなたはsを一緒に接続すると言いました。あなたはこれを行うことができます。[ condition ][[ condition ]]&&

A  &&  B  &&  C

等しい

if A
then
    if B
    then
        C
    fi
fi

ところで、あなたはどうなるかと聞くようですね。

if A
then
    B
    C
fi

あなたはこれを行うことができます

A  &&  (B; C)

または

A  &&  { B; C;}

メモ:

  • 角かっこはサブシェルを提供します。つまり、コマンドは子プロセスで実行されBます。Cしたがって、変数の割り当てなどのコマンドはcd親シェルには影響しません。中括弧で囲まれたコマンドは、コマンドと同じプロセスで実行されますA
  • 中かっこ構文には次のものがあります。〜しなければならないその後にスペースがあり、{次のようになります。〜しなければならない先行  ;(または改行)文字です。&}

私の考え:

if読みやすくするには - 構文を使用することをお勧めします。thenelse

おすすめ記事