首页 > 解决方案 > 如果值是另一个shell变量,如何获得shell变量扩展

问题描述

level_1="hi hello"
level_2="hey "
level_3="whatsup howdy"
echo ${!level*}

for i in ${!level*};do
  j="\$$i"
  echo $j
done

这将打印

level_1 level_2 level_3
$level_1
$level_2
$level_3

我希望改为打印 $level_1 或 $level_2 的值。

任何指针如何实现这一点。

标签: bashshell

解决方案


您可以${!variable}为此使用:

for i in ${!level*};do
  j=${!i}
  echo $j
done

这将给出所需的输出:

hi hello
hey
whatsup howdy

推荐阅读