我需要两个变量,并且想在 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
,因此出现错误是可以理解的。