如何添加元素到bash数组?

时间:2019-02-14 00:59:31

标签: arrays bash

我正在尝试将元素添加到bash数组中,但我不知道为什么不添加它们:

$ cat /tmp/tmp.bash
#!/bin/bash

declare -a base=(
"python"
"python-setuptools"
)

packages=( "${base[*]}" "tools" "oracle" )
echo "$packages"

$ /tmp/tmp.bash
python python-setuptools
$ 

在输出中,我们仅看到base数组元素,但看不到我添加的两个元素。

知道我在做什么错吗?

1 个答案:

答案 0 :(得分:5)

$packages扩展到仅第一个元素。要打印所有数组元素,请写:

echo "${packages[@]}"

类似地,展开$base时,应使用@而不是**导致"python""python-setuptools"连接到单个数组条目:python python-setuptools"

packages=( "${base[@]}" "tools" "oracle" )

还请注意,无需引用简单的字符串文字。您可以忽略它们。

base=(
    python
    python-setuptools
)

packages=("${base[@]}" tools oracle)
echo "${packages[@]}"