bash脚本中的算术运算

时间:2018-01-11 11:06:42

标签: bash

我看到了一个表达式a=($(cat)),我无法从它的工作机制角度理解。

从功能上讲,它从标准输入中获取输入并将其分配给变量a(形成一个数组)。

我的理解是,当shell执行内部括号时,它会执行带有标准输入的cat命令,当您在标准输入上键入几行并按CTRL+D时,它会返回行到外括号,然后将行分配给数组a

我的问题是,当我删除$并将其写为a=((cat))时,此表达式会出错。

1 个答案:

答案 0 :(得分:2)

这是因为$(..)是一个命令替换语法来运行命令。示例中的cat在此构造下的子shell中运行。没有它,命令cat(按字面解释shell不喜欢

来自bash(1) - Linux man page

  

命令替换

     

命令替换允许输出命令来替换命令名称。有两种形式:   $(command)(或)command

     

Bash通过执行命令并用命令的标准输出替换命令替换来执行扩展,删除任何尾随换行符。

bash中的算术运算符为$((..)) <>