假设我声明了一个数组Unix
declare -a Unix=('Debian' 'Red hat' 'Suse' 'Fedora')
我可以像这样附加到数组
Unix=("${Unix[@]}" "AIX")
我引入另一个变量a
,它指向一个命名早期Unix
变量的字符串
a=Unix
我可以通过第二个变量附加到数组吗?我想知道的原因是我正在尝试编写一个函数,它接受一个'指向数组'的变量。
答案 0 :(得分:6)
使用内置的declare
。它的参数在执行赋值之前会进行扩展,因此$a
会扩展为要在赋值发生之前更新的数组的名称。
declare "$a+=( Aix )"
答案 1 :(得分:1)
转义所有内容,以便只替换a
并保留所有其他内容,然后使用eval
-
Unix=('Debian' 'Red hat' 'Suse' 'Fedora')
a=Unix
eval "$a=( \"\${$a[@]}\" \"AIX\" )"