我想在bash中询问有关变量变量的一些帮助.我已经阅读了一些关于它的文章,但就我而言,我不知道该怎么做.让我看看我的问题:
该数组包含其他数组的名称,我想打印这些数组的值.在内心,我需要变量变量.
#!/bin/bash
declare -a array=(dir1 dir2 dir3)
declare -a dir1=(1 2 3)
declare -a dir2=(a b c)
declare -a dir3=(9 8 7)
for elem1 in "${array[@]}"
do
for elem2 in "${variableVariable[@]}"
do
echo "$elem1 : $elem2"
done
done
Run Code Online (Sandbox Code Playgroud)
输出应该是这样的
dir1 : 1 dir1 : 2 dir1 : 3 dir2 : a dir2 : b dir2 : c dir3 : 9 dir3 : 8 dir3 : 7
这可以使用bash的间接变量功能来完成.
for elem1 in "${array[@]}"
do
elems=$elem1'[@]'
for elem2 in "${!elems}"
do
echo "$elem1 : $elem2"
done
done
Run Code Online (Sandbox Code Playgroud)
请注意,这是一个bash扩展,它不能移植到其他shell.