我试图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