首页 > 解决方案 > 使用变量作为另一个变量名的一部分

问题描述

我正在尝试使用一个变量作为另一个变量名称的一部分。

例如,我在CONFIG_范围中有一些变量。

echo $CONFIG_systema_value > "testconfig"
echo $CONFIG_systemb_value > "testconfig2"

然后我有一个“决定性”变量,例如WANTEDSYSTEM

echo $WANTEDSYSTEM > "systema"

我需要能够根据想要的系统变量“动态”切换配置。

echo $CONFIG_$WANTEDSYSTEM_value我最初的尝试是testconfig这样的echo $CONFIG_systema_value

标签: bash

解决方案


您可以使用${!name}语法间接引用变量,如下所示:

CONFIG_systema_value=foo
CONFIG_systemb_value=bar
WANTEDSYSTEM=systema

target_var_name="CONFIG_${WANTEDSYSTEM}_value"
echo ${!target_var_name}

(请注意,这是特定于 bash 的语法,但听起来这就是您要寻找的。)


推荐阅读