bash - 如果值是另一个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 的值。
任何指针如何实现这一点。
解决方案
您可以${!variable}
为此使用:
for i in ${!level*};do
j=${!i}
echo $j
done
这将给出所需的输出:
hi hello
hey
whatsup howdy
推荐阅读
- excel - 特殊复制粘贴
- flutter - 调用自定义小部件时出错
- javascript - 如何为已经有界的 Vue 方法添加上下文?
- sql-server - 无法从 Azure 数据库迁移服务访问本地服务器的网络共享路径
- linux - tcsh 脚本中设置的环境变量不适用于 bash 脚本
- jenkins - Jenkinsfile 中的 Anaconda
- weaviate - 为 Weaviate 架构中的属性选择正确的名称
- r - 尝试使用循环对列表中的向量进行排序时的奇怪行为
- java - 如何将不带前缀的 childElements 添加到 Soap 标头?
- matlab - 如何向量化二维矩阵每一行的外积矩阵的评估?