命令行上的 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

相关内容