1. ホーム
  2. bash

[解決済み] Bashのif文の中で角括弧が必要なのはどんな場合ですか?

2023-03-31 14:43:21

質問

通常、if文の中では角括弧を使う。

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

しかし、確認すると grep は、角括弧を使用しません。

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

の角括弧はいつ必要なのでしょうか? if という声明を発表しました。

どのように解決するのですか?

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

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

角括弧は同義語なので test コマンドを実行すれば、元の文に書き換えることができます。

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