コマンドラインの bash 構文の問題

コマンドラインの bash 構文の問題

ifコマンドラインで単純な文を実行してテストしましたが、bashはそれを実行しません。

変数を追加する
~$ myVar = 23
条件文の実行
~$ if [$myVar -eq 23] then echo "myVar is 23" fi

Bashはこれを実行しません。ここで私は何を見逃していますか?

ベストアンサー1

変数空間を宣言することが重要です。

myVar = 23

次にセミコロンが欠けており、角かっこ内の間隔が重要です。

if [$myVar -eq 23] then echo "myVar is 23" fi

しなければならない:

myVar=23

そして:

if [ $myVar -eq 23 ]; then echo "myVar is 23"; fi

複数行に書く場合は、セミコロンなしで書くことができます。

if [ "$myVar" -eq 23 ]
   then
   echo '$myVar is' "$myVar"
fi

通常、変数に二重引用符を使用することをお勧めします。

一重引用符はリテラル文字列に使用されます。

これはセミコロンを使用した有効な構文でもあります。

if [ "$myVar" -eq 23 ]; then
   echo '$myVar is' "$myVar"
fi

おすすめ記事