bash - 使用变量作为另一个变量名的一部分
问题描述
我正在尝试使用一个变量作为另一个变量名称的一部分。
例如,我在CONFIG_
范围中有一些变量。
echo $CONFIG_systema_value > "testconfig"
echo $CONFIG_systemb_value > "testconfig2"
然后我有一个“决定性”变量,例如WANTEDSYSTEM
echo $WANTEDSYSTEM > "systema"
我需要能够根据想要的系统变量“动态”切换配置。
echo $CONFIG_$WANTEDSYSTEM_value
我最初的尝试是testconfig
这样的echo $CONFIG_systema_value
解决方案
您可以使用${!name}
语法间接引用变量,如下所示:
CONFIG_systema_value=foo
CONFIG_systemb_value=bar
WANTEDSYSTEM=systema
target_var_name="CONFIG_${WANTEDSYSTEM}_value"
echo ${!target_var_name}
(请注意,这是特定于 bash 的语法,但听起来这就是您要寻找的。)
推荐阅读
- kubernetes - 我在 gitlab 中的自动 devops 管道不起作用
- php - 通过维基数据获取比利时的城市列表
- mysql - 当使用触发器更改另一个字段时,从表中更改字段的值
- python - 确定每组的连续日期期间
- excel - 将所有 pdf 文件移动到新文件夹
- laravel - 在 laravel 上使用 like 无法显示日期搜索
- python - Python列表根据文本获取唯一元素
- mysql - Tomcat 8.5 连接池在数据库故障转移后未重新连接
- javascript - 如何使用颜色选择器更改 3D Sierpinski 垫片每一侧的颜色?
- c# - 使用 MSMQ 而不在客户端计算机上安装 MSMQ