Bashスクリプトで「&&」を使用しないのはなぜですか?

Bashスクリプトで「&&」を使用しないのはなぜですか?

私は2つの条件を持つ単純なifセクションを含むbashスクリプトを書いています。

  if [[ -n $VAR_A ]] && [[ -n $VAR_B ]]; then
    echo >&2 "error: cannot use MODE B in MODE A" && exit 1
  fi

シニアエンジニアが私のコードを確認し、次のように言いました。

後続の行で2つのコマンドを簡単に実行できる場合は、&&を使用しないでください。

彼はこれ以上説明しませんでした。しかし、好奇心でこれが本当であるか、そして何を使わないべきかを知りたいです&&

ベストアンサー1

レビューアのコメントは、おそらく&&演算子の2番目の使用について言及しているようです。欲しくない終了しないでください私の考えでは、echo失敗した場合は別々の行にコマンドを書く方が合理的です。

if [[ -n $VAR_A ]] && [[ -n $VAR_B ]]; then
    echo >&2 "error: cannot use MODE B in MODE A"
    exit 1
fi

ただし、bashには&&次の[[ ... ]]条件を含めることができます。

if [[ -n $VAR_A && -n $VAR_B ]]; then

おすすめ記事