1

我的代码:

RETVAL1=-1
if [ $RETVAL1 -le 0 ] ; then
  RETVAL1=$RETVAL1+1
  print "RETVAL1: $RETVAL1"
fi

它打印RETVAL1: -1+1 任何想法如何修复它吗?

4

4 回答 4

4

要执行算术运算,请使用以下let命令:let RETVAL1=RETVAL1+1

此外,将表达式括在$((and之间))也会将其解释为算术运算。 echo $((RETVAL+1))

于 2013-04-19T05:27:04.730 回答
3

使用let命令。此命令执行算术运算。+运算符执行字符串加法。

像这样使用它:

let RETVAL1=RETVAL1+1

您还可以使用expr命令来获得更通用的表达式。

于 2013-04-19T05:25:54.823 回答
2

单程:

((RETVAL1=RETVAL1+1))
于 2013-04-19T05:26:16.903 回答
1

Shell 变量不像大多数编程语言中的变量那样工作。如果要将 1 加到存储在变量中的整数,则需要一个算术表达式。我不是ksh巫师,但通常的 Bourne-derived-shell 算术表达式语法是:

RETVAL1=$((RETVAL1 + 1))

或者

((RETVAL1 = RETVAL1 + 1))
于 2013-04-19T05:28:11.267 回答