#!/bin/bash
number=0
while [ "$number" -lt 10 ]
do
echo -n "$number"
((number +=1))
done
echo
任何人都可以解释为什么$
中不需要((number += 1))
?
答案 0 :(得分:2)
对(( ... ))
使用shell算法时,变量前的$
是可选的。由于这仅用于算术,因此不允许使用字符串,因此任何不是数字或运算符的未加引号的标记都将被视为变量。 Shell Arithmetic上的Bash手册部分解释了:
允许Shell变量作为操作数;在计算表达式之前执行参数扩展。在表达式中,shell变量也可以通过名称引用,而不使用参数扩展语法。