#! /bin/sh
COUNTER=1
while [ "$COUNTER" -lt 10 ]; do
echo "Here we go again"
COUNTER=$(($COUNTER+1))
done
请问 $COUNTER+1
外面套两个 (),最后还加上一个 $
我理解是套一个就可以返回数值了,然后用$把值变为变量。但是执行时报错.
请教诸位,这个是怎么回事?
#! /bin/sh
COUNTER=1
while [ "$COUNTER" -lt 10 ]; do
echo "Here we go again"
COUNTER=$(($COUNTER+1))
done
请问 $COUNTER+1
外面套两个 (),最后还加上一个 $
我理解是套一个就可以返回数值了,然后用$把值变为变量。但是执行时报错.
请教诸位,这个是怎么回事?
7 回答5.3k 阅读
4 回答4k 阅读
2 回答5.9k 阅读✓ 已解决
2 回答2.5k 阅读✓ 已解决
1 回答2.3k 阅读✓ 已解决
2 回答798 阅读✓ 已解决
2 回答3.2k 阅读
根据 bash 手册:
所以, 当你要获取 arithmetic evaluation 的值的时候, 要加
$
. 不获取它的值时, 不用加$
.Arithmetic Expansion 与 Arithmetic Evaluation是不同的.
Arithmetic Evaluation 可以作为单独的命令使用, 而 Arithmetic Expansion 是获取 arithmetic evaluation 命令的结果. 如: