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