从Bash中数组中列出的变量名获取变量值
我试图打印Bash数组中列出的多个变量的值,如下面的最小代码示例所示从Bash中数组中列出的变量名获取变量值,bash,Bash,我试图打印Bash数组中列出的多个变量的值,如下面的最小代码示例所示 #!/bin/bash VAR1="/path/to/source/root" VAR2="/path/to/target/root" VAR3="50" VARS=("VAR1" "VAR2" "VAR3") for var in ${VARS[*]}; do echo "value of $var is ${$var}" done 这给了我一个错误 line 8: value of $var is ${$var
#!/bin/bash
VAR1="/path/to/source/root"
VAR2="/path/to/target/root"
VAR3="50"
VARS=("VAR1" "VAR2" "VAR3")
for var in ${VARS[*]}; do
echo "value of $var is ${$var}"
done
这给了我一个错误
line 8: value of $var is ${$var}: bad substitution
我想要以下输出:
value of VAR1 is /path/to/source/root
value of VAR2 is /path/to/target/root
value of VAR3 is 50
value of VAR1 is /path/to/source/root
value of VAR2 is /path/to/target/root
value of VAR3 is 50
我在谷歌上的搜索结果不是很好。由于间接性(即,
var
迭代一个数组,该数组包含我想要其值的变量名称),我无法准确地对搜索进行命名。但我们非常感谢您的帮助。使用间接引用:
#!/bin/bash
VAR1="/path/to/source/root"
VAR2="/path/to/target/root"
VAR3="50"
VARS=("VAR1" "VAR2" "VAR3")
for var in ${VARS[*]}; do
echo "value of $var is ${!var}"
done
输出: