向数组添加新元素,而不在Bash中指定索引有没有办法$array[] = 'foo';在bash中执行类似PHP的操作:array[0] = 'foo'array[1] = 'bar'
3 回答
婷婷同学_
TA贡献1844条经验 获得超8个赞
正如Dumb Guy指出的那样,重要的是要注意阵列是否从零开始并且是顺序的。由于您可以分配和取消设置非连续索引,${#array[@]}
因此并不总是数组末尾的下一个项目。
$ array=(a b c d e f g h)$ array[42]="i"$ unset array[2]$ unset array[3]$ declare -p array # dump the array so we can see what it containsdeclare -a array='([0]="a" [1]="b" [4]="e" [5]="f" [6]="g" [7]="h" [42]="i")'$ echo ${#array[@]}7$ echo ${array[${#array[@]}]}h
以下是获取最后一个索引的方法:
$ end=(${!array[@]}) # put all the indices in an array$ end=${end[@]: -1} # get the last one$ echo $end42
这说明了如何获取数组的最后一个元素。你会经常看到这个:
$ echo ${array[${#array[@]} - 1]}g
如您所见,因为我们正在处理稀疏数组,所以这不是最后一个元素。这适用于稀疏和连续数组,但是:
$ echo ${array[@]: -1}i
慕桂英3389331
TA贡献2036条经验 获得超8个赞
$ declare -a arr $ arr=("a")$ arr=("${arr[@]}" "new")$ echo ${arr[@]}a new $ arr=("${arr[@]}" "newest")$ echo ${arr[@]}a new newest
- 3 回答
- 0 关注
- 628 浏览
添加回答
举报
0/150
提交
取消