为什么在let结构中可以省略'$'

时间:2017-07-08 09:27:02

标签: bash syntax scripting

$let结构中可以省略(( ... ))符号。

为什么这样,因为在使用$if时必须while

2 个答案:

答案 0 :(得分:4)

算术表达式只用 处理整数,而不是字符串。因此,如果一个字符串出现在表达式中,解释它的唯一合理方法是作为一个变量来扩展(必要时递归),直到得到一个整数。

在其他上下文中,允许使用字符串,因此区分字符串foo和变量foo的值的唯一方法是使用显式语法进行参数扩展({{1} }是一个字符串,foo生成参数$foo)的值。

所有这些的根源是shell不会将变量传递给函数或命令;你实际上只是扩展宏并传递结果值。

答案 1 :(得分:0)

((i++)) or let i++

只增加i。这是对值执行的操作。
它返回,但退出代码。

var=$((i+2))

将$((i + 2))扩展为其总和 它返回结果