如何在 shell 脚本中声明并赋值给变量?

如何在 shell 脚本中声明并赋值给变量?

我需要两个变量,并且想在 shell 脚本中对这些变量执行加法。

我正在使用下面的脚本来实现这一点,但是在expr: non-numeric argument error运行该脚本时遇到了一些问题。

#!/bin/sh
val1=10
val2=20
while [val1 -gt 5]
do
echo $val1
val1=$(expr $VAL + $BAL)
done

答案1

这是错误的:

while [val1 -gt 5]

它应该是:

while [ $val1 -gt 5 ]

… 因为:

  • 您需要美元符号$val1来引用该变量。
  • 括号[和变量之间需要一个空格。这是一个命令,否则 shell 会先展开$val1到它的值10,然后搜索命令[10,但显然它找不到。

除此之外,您的脚本在理论上应该可以工作,但都没有$VAL定义$BAL,因此出现错误是可以理解的。

相关内容