shell脚本,循环数组,为什么使用${array[@]}
""是什么意思?, 代码:shell脚本,循环数组,为什么使用${array[@]},shell,Shell,""是什么意思?, 代码: 在循环中,为什么使用${array[@]}而不是$array,thx$array的工作方式与数组不同。它的作用更像是${array[0]}$array计算数组中的第一个元素。您必须使用${array[@]}(或者更准确地说,“${array[@]}”)依次指示数组的每个元素,由$IFS的第一个字符分隔。这是该语言定义的语法。这就是它的工作原理。在manbash中阅读相关内容,搜索标题为“数组”的部分。以下是相关部分: 数组的任何元素都可以使用${name[subscr
在循环中,为什么使用${array[@]}而不是$array,thx
$array
的工作方式与数组不同。它的作用更像是${array[0]}
$array
计算数组中的第一个元素。您必须使用${array[@]}
(或者更准确地说,“${array[@]}”
)依次指示数组的每个元素,由$IFS
的第一个字符分隔。这是该语言定义的语法。这就是它的工作原理。在manbash
中阅读相关内容,搜索标题为“数组”的部分。以下是相关部分:
数组的任何元素都可以使用${name[subscript]}引用。
需要大括号以避免与路径名扩展冲突。如果
下标为@或*,该词扩展到name的所有成员。这些
只有当单词出现在双引号内时,下标才会不同。如果
该单词是双引号,${name[*]}扩展为一个带有
由IFS的第一个字符分隔的每个数组成员的值
特殊变量,${name[@]}将name的每个元素扩展为sep
阿拉伯字。当没有数组成员时,${name[@]}扩展为
没有什么。如果双引号展开发生在单词内,则
第一个参数的展开与
原始单词和最后一个参数的展开式连接在一起
用原单词的最后一部分。这类似于
特殊参数*和@的扩展(见特殊参数
上文)
#!/bin/bash
array[0]=1
array[1]=2
array[2]=3
array[3]=4
array[4]=5
#work
for num in ${array[@]}
do
echo $num
done
#not work
for num in array
do
echo $num
done