Bash中的可变列表或数组结构?我怎样才能轻易附加到它?

Joe*_*Joe 59 arrays bash scripting

我正在尝试在bash脚本中收集字符串值.我可以将字符串值附加到列表或数组结构的最简单方法是什么,以便我可以在最后回显它们?

Pau*_*ce. 99

$ arr=(1 2 3)
$ arr+=(4)
$ echo ${arr[@]}
1 2 3 4
Run Code Online (Sandbox Code Playgroud)

由于Bash使用稀疏数组,因此不应将元素计数${#arr}用作索引.但是,你可以得到一个像这样的索引数组:

$ indices=(${!arr[@]})
Run Code Online (Sandbox Code Playgroud)


Ign*_*ams 11

foo=(a b c)
foo=("${foo[@]}" d)
for i in "${foo[@]}"; do echo "$i" ; done
Run Code Online (Sandbox Code Playgroud)


cod*_*ict 5

添加 Ignacio 在另一个答案中的建议:

foo=(a b c)
foo=("${foo[@]}" d) # push element 'd'

foo[${#foo[*]}]="e" # push element 'e'

for i in "${foo[@]}"; do echo "$i" ; done
Run Code Online (Sandbox Code Playgroud)


gho*_*g74 5

$ for i in "string1" "string2" "string3"
> do
> array+=($i)
> done
$ echo ${array[@]}
string1 string2 string3
Run Code Online (Sandbox Code Playgroud)