从变量追加到数组



假设我声明了一个数组Unix

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

我可以这样附加到数组中

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

我介绍了另一个变量a它指向一个字符串,命名了前面的Unix变量

a=Unix

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

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

declare "$a+=( Aix )"

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

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

最新更新