$
和let
结构中可以省略(( ... ))
符号。
为什么这样,因为在使用$
或if
时必须while
?
答案 0 :(得分:4)
算术表达式只用 处理整数,而不是字符串。因此,如果一个字符串出现在表达式中,解释它的唯一合理方法是作为一个变量来扩展(必要时递归),直到得到一个整数。
在其他上下文中,允许使用字符串,因此区分字符串foo
和变量foo
的值的唯一方法是使用显式语法进行参数扩展({{1} }是一个字符串,foo
生成参数$foo
)的值。
所有这些的根源是shell不会将变量传递给函数或命令;你实际上只是扩展宏并传递结果值。
答案 1 :(得分:0)
((i++)) or let i++
只增加i。这是对值执行的操作。
它返回无,但退出代码。
var=$((i+2))
将$((i + 2))扩展为其总和
它返回结果