从变量追加到数组

时间:2014-02-23 23:14:52

标签: arrays bash

假设我声明了一个数组Unix

declare -a Unix=('Debian' 'Red hat' 'Suse' 'Fedora')

我可以像这样附加到数组

Unix=("${Unix[@]}" "AIX")

我引入另一个变量a,它指向一个命名早期Unix变量的字符串

a=Unix

我可以通过第二个变量附加到数组吗?我想知道的原因是我正在尝试编写一个函数,它接受一个'指向数组'的变量。

2 个答案:

答案 0 :(得分:6)

使用内置的declare。它的参数在执行赋值之前会进行扩展,因此$a会扩展为要在赋值发生之前更新的数组的名称。

declare "$a+=( Aix )"

答案 1 :(得分:1)

转义所有内容,以便只替换a并保留所有其他内容,然后使用eval -

Unix=('Debian' 'Red hat' 'Suse' 'Fedora')
a=Unix
eval "$a=( \"\${$a[@]}\" \"AIX\" )"