在shell脚本(bash)中,${ }命令是什么?

3

我正在学习Shell脚本,有一件事让我感到困扰,就是我不知道${}实际上是做什么的。

我在Google上搜索发现${}用于替换。

但我无法理解的是这里的内容。

如果${}是用来进行替换的话,那么

distro=("redhat" "debian" "gentoo")

echo ${distro[0]}
echo ${distro[2]}

echo ${#distro[@]} 

当没有任何替换时,它为什么运行上述代码。

我在这件事上错了。


http://tldp.org/LDP/abs/html/arrays.html - Mat
请查看我的回答这里,其中讨论了花括号以及其他内容。 - Dennis Williamson
1
@DennisWilliamson(抱歉,我没有声望无法投票),我猜${}是一种替换方式,@是一个例外,正如我在KarolyHorvath提到的手册中看到的。 - Viren
1个回答

4

如果你想查询bash的手册,请输入man bash,然后使用/\${查找${,按几次n即可找到相关内容。

数组中的任何元素都可以使用${name[subscript]}来引用。

并且

${#name[subscript]}会扩展为${name[subscript]}的长度。如果subscript是*或@,则扩展为数组中元素的数量。

通过之前的段落,您还可以发现:

可以使用类似于name=(value1 ... valuen)的复合赋值形式赋值给数组,其中每个值的格式为[subscript]=string。索引数组分配不需要括号和下标。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接