bashのifと[[の違いは何ですか?

bashのifと[[の違いは何ですか?

私は見た

if cmd
then
echo Hi
fi

働く方法は昔とは異なります

if [[ $(cmd) ]]
then
echo Hi
fi

それでは、[[があり、[[がなければどうなりますか?

ベストアンサー1

シェルでは、[テストコマンドのエイリアスです。それはい注文する。これは[[いくつかのシェルの特徴ですが、少し異なります。 Bashでは、コマンドではなくキーワードですが、コマンドのように機能します。

次のように考えることができます。[[「$(cmd)」の出力をそのコマンドの引数として実行して提供しています。ifその後、返品状況を確認してください[[。演算子が提供されない場合[[-nが暗示されます。

   -n string
          True if the length of string is non-zero.

たとえば、

if cmd          # check the return status of cmd
if [[ $(cmd) ]] # check if cmd has any output

おすすめ記事