我正在尝试将元素添加到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数组元素,但不是我添加的两个.
知道我做错了什么吗?
$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)