命令行上的 bash 语法问题

Mic*_*man 0 bash

我试图if通过从命令行运行它来测试一个简单的语句,但 bash 不会运行它。

添加变量
~$ myVar = 23
Run Code Online (Sandbox Code Playgroud) 运行条件语句
~$ if [$myVar -eq 23] then echo "myVar is 23" fi
Run Code Online (Sandbox Code Playgroud)

Bash 不会运行这个,我在这里错过了什么?

jmu*_*sch 5

声明一个变量空格很重要:

myVar = 23
Run Code Online (Sandbox Code Playgroud)

以下缺少分号,括号内的间距很重要:

if [$myVar -eq 23] then echo "myVar is 23" fi
Run Code Online (Sandbox Code Playgroud)

应该:

myVar=23
Run Code Online (Sandbox Code Playgroud)

和:

if [ $myVar -eq 23 ]; then echo "myVar is 23"; fi
Run Code Online (Sandbox Code Playgroud)

如果写在多行上,也可以不用分号来写:

if [ "$myVar" -eq 23 ]
   then
   echo '$myVar is' "$myVar"
fi
Run Code Online (Sandbox Code Playgroud)

通常建议在变量上使用双引号。

单引号用于文字字符串。

这也是带一个分号的有效语法:

if [ "$myVar" -eq 23 ]; then
   echo '$myVar is' "$myVar"
fi
Run Code Online (Sandbox Code Playgroud)