当我遇到算术比较问题时,我正在尝试学习shell脚本并遵循tutorialspoint上的教程。
$VAL1=10
$VAL2=20
$VAL3=10
if [ $VAL1 == $VAL2 ]
then
echo "equal"
else
echo "not equal"
fi
但是我得到了[: ==: unexpected operator
我不知道为什么比较运算符不起作用。我知道我也可以使用有理算子,但我想知道为什么'=='没有被定义。
答案 0 :(得分:11)
您想将其更改为:
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
(&gt;)-ge
(&gt; =)-lt
(&lt;)-le
(&lt; =)