Bash の if ステートメントで角括弧が必要なのはいつですか? 質問する

Bash の if ステートメントで角括弧が必要なのはいつですか? 質問する

通常、if ステートメントでは角括弧を使用します。

if [ "$name" = 'Bob' ]; then ...

しかし、成功したかどうかを確認するときは、grep角括弧を使用しません。

if grep -q "$text" $file ; then ...

文中で角括弧が必要なのはいつですかif?

ベストアンサー1

角括弧はコマンドの同義語ですtestifステートメントは、どの分岐を取るかを決定するためにコマンドの終了ステータスをチェックします。grep -q "$text"はコマンドですが、"$name" = 'Bob'ではなく、単なる式です。testは式を受け取って評価するコマンドです。

if test "$name" = 'Bob'; then ...

角括弧はコマンドの同義語なのでtest、元のステートメントのように書き直すことができます。

if [ "$name" = 'Bob' ]; then ...

おすすめ記事