任何人都可以解释这个控制结构吗?

时间:2015-03-12 06:43:23

标签: bash while-loop

#!/bin/bash
number=0
while [ "$number" -lt 10 ]
do
    echo -n "$number"
    ((number +=1))
done
echo

任何人都可以解释为什么$中不需要((number += 1))

1 个答案:

答案 0 :(得分:2)

(( ... ))使用shell算法时,变量前的$是可选的。由于这仅用于算术,因此不允许使用字符串,因此任何不是数字或运算符的未加引号的标记都将被视为变量。 Shell Arithmetic上的Bash手册部分解释了:

  

允许Shell变量作为操作数;在计算表达式之前执行参数扩展。在表达式中,shell变量也可以通过名称引用,而不使用参数扩展语法。