我的代码是:
echo "Enter two numbers"
read a
c=20
echo $c
if[ $c -gt $a ]; then
echo "This is block 1."
else
echo "This is block 2"
fi
错误:
- 否则出乎意料
- 如果 [ 未找到
我的代码是:
echo "Enter two numbers"
read a
c=20
echo $c
if[ $c -gt $a ]; then
echo "This is block 1."
else
echo "This is block 2"
fi
错误:
在这种情况下, shell 无法识别if
为关键字;它正在寻找一个名为if[
但没有找到它的命令。如果你开始一行,你会得到同样的错误ifx
。
与大多数编程语言不同,shell 认为if[
是单个标记。[
实际上是一个(可能是内置的)命令,而不是 shell 语法的基本部分(它相当于命令test
)。[
在命令名称中与字母、数字或下划线一样有效。
if
正如 Christian.K 的评论所说,解决方法是在命令和命令之间插入一个空格[
:
if [ $c -gt $a ]; then
echo "This is block 1."
else
echo "This is block 2"
fi
(这适用于sh
从它派生的 shell,包括bash
、ksh
和zsh
.csh
并且tcsh
具有不同的语法规则。)