当我遇到算术比较这个问题时,我正在尝试学习 shell 脚本并遵循 tutorialspoint 上的教程。
$VAL1=10
$VAL2=20
$VAL3=10
if [ $VAL1 == $VAL2 ]
then
echo "equal"
else
echo "not equal"
fi
但我得到了一个[: ==: unexpected operator
我不确定为什么比较运算符不起作用。我知道我也可以使用理性运算符,但我想知道为什么没有定义'=='。
当我遇到算术比较这个问题时,我正在尝试学习 shell 脚本并遵循 tutorialspoint 上的教程。
$VAL1=10
$VAL2=20
$VAL3=10
if [ $VAL1 == $VAL2 ]
then
echo "equal"
else
echo "not equal"
fi
但我得到了一个[: ==: unexpected operator
我不确定为什么比较运算符不起作用。我知道我也可以使用理性运算符,但我想知道为什么没有定义'=='。
您想将其更改为:
VAL1=10
VAL2=20
VAL3=10
if [ "$VAL1" -eq "$VAL2" ]
then
echo "equal"
else
echo "not equal"
fi
说明:
$
在赋值中添加左值(被赋值的变量)。[: ==: unexpected operator
错误是因为VAL1
/VAL2
之前没有正确分配,你的测试的 ksh 扩展实际上最终解决了这个问题:if [ == ]
- (但你看到它实际上不是关于==
未定义的问题)==
符号:
-eq
(==)-ne
(!=)-gt
(>)-ge
(>=)-lt
(<)-le
(<=)