如何将元素添加到bash数组?

boa*_*der 4 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
$ 
Run Code Online (Sandbox Code Playgroud)

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

知道我做错了什么吗?

Joh*_*ica 5

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

echo "${packages[@]}"
Run Code Online (Sandbox Code Playgroud)

同样,当你扩大$base你应该使用@没有*.*原因"python""python-setuptools"连接成一个数组条目:python python-setuptools".

packages=( "${base[@]}" "tools" "oracle" )
Run Code Online (Sandbox Code Playgroud)

另请注意,不需要引用简单的字符串文字.你可以省略它们.

base=(
    python
    python-setuptools
)

packages=("${base[@]}" tools oracle)
echo "${packages[@]}"
Run Code Online (Sandbox Code Playgroud)