繁体   English   中英

Shell脚本算术运算符进行比较

[英]Shell Scripting Arithmetic Operators for Comparison

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM