意外的令牌,if语句的语法错误,

时间:2014-04-20 02:56:24

标签: bash shell if-statement scripting

我的if语句出现问题,由于某种原因它无法运行。这是代码:

if (( $digit1 -ne $digit2 )); then
 echo "test"

fi

我收到以下错误消息:line 32: ((: 1 -ne 2 : syntax error in expression (error token is "2 ")

**我的数字设置为2

2 个答案:

答案 0 :(得分:1)

您使用的是表单:

((expression))

根据算术评估规则评估表达式。

您有两种选择。修复运算符,即使用!=

if (( d1 != d2 )); then

或使用test

if [ $d1 -ne $d2 ]; then

如果您正在使用算术上下文:

    !, ~        logical and bitwise negation

引自help test

  arg1 OP arg2   Arithmetic tests.  OP is one of -eq, -ne,
                 -lt, -le, -gt, or -ge.

答案 1 :(得分:1)

正如@devnull所说并添加,请使用:

 if [ $digi1 -ne $digi2 ]; then
   echo "Unequal numbers"
 fi