我的脚本中有几个数组
a=(1 2 3)
b=(3 4 5)
用户输入要打印的列表。
./array.sh a
如何打印数组元素?
我尝试过以下操作但无法打印
array=$1
echo ${!array[@]}
答案 0 :(得分:2)
您可以使用declare -n
作为变量的命名参考,如下所示:
a=(1 2 3)
b=(3 4 5)
declare -n arr="${1?need an array name}"
printf "%s\n" "${arr[@]}"
然后执行:
./array.sh a
1
2
3
./array.sh b
3
4
5
答案 1 :(得分:1)
制作间接的[@]
部分:
a=(1 2 3)
myfunction() {
array="$1[@]"
echo "${!array}"
}
myfunction a