当我遇到算术比较这个问题时,我正在尝试学习 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(<=)