我有一个bash脚本问题。我试图创建以下代码,但是,它无法正常工作。这让我想知道它是否有可能。我希望这里有人能搞清楚。
MYSQL_DB_MyDatabase_USERS_username_PASSWORD=Password
DATABASE_NAME=MyDatabase
DATABASE_USER=username
DATABASE_PASS_TEMP=MYSQL_DB_${DATABASE_NAME}_USERS_${DATABASE_USER}_PASSWORD
echo $DATABASE_PASS_TEMP
我希望输出为“密码”(原始变量)。我收到错误,我知道我的语法不正确。我用google搜索并发现在变量名中使用一个变量,可以使用echo“$ {!DATABASE_PASS_TEMP}”,但是当使用两个动态变量时这不起作用。提前感谢您提供任何帮助。
答案 0 :(得分:2)
使用BASH的变量间接:
echo "${!DATABASE_PASS_TEMP}"
Password
答案 1 :(得分:0)
使用关联数组可以整理一些东西:
declare -A MYSQL_DB_PASSWORDS=(
[MyDatabase,username]=Password
)
DATABASE_NAME=MyDatabase
DATABASE_USER=username
DATABASE_PASS_TEMP=${MYSQL_DB_PASSWORDS["$DATABASE_NAME","$DATABASE_USER"]}
echo "$DATABASE_PASS_TEMP"
密码