如何根据第二个变量的值引用bash变量(动态变量用法)?

如何根据第二个变量的值引用bash变量(动态变量用法)?,bash,shell,Bash,Shell,我有点被这件事缠住了 我在配置文件defaults.cfg中声明了三个预设变量: ANDROID_4.4=android-4.4.4_r1 ANDROID_6.0=android-6.0.1_r79 ANDROID_7.0=android-7.1.1_r28 每个变量都包含用于构建指定Android版本的首选分支名称。 如何根据ANDROID_版本的值访问这些值 我如何尝试的示例: #!/bin/bash source defaults.cfg ANDROID-VERSION=4

我有点被这件事缠住了

我在配置文件defaults.cfg中声明了三个预设变量:

ANDROID_4.4=android-4.4.4_r1
ANDROID_6.0=android-6.0.1_r79
ANDROID_7.0=android-7.1.1_r28
每个变量都包含用于构建指定Android版本的首选分支名称。 如何根据ANDROID_版本的值访问这些值

我如何尝试的示例:

#!/bin/bash    
source defaults.cfg   
ANDROID-VERSION=4.4
`repo init -u https://android.googlesource.com/platform/manifest -b ${ANDROID_{$ANDROID_VERSION}}`
我不能覆盖这个间接值,因为这应该适用于jenkins,jenkins只能得到4.4、6.0、7.0等等


提前感谢

您可以使用
awk
来配置文件,以根据版本获取值:

ANDROID_VERSION='4.4'
awk -F= -v ver="$ANDROID_VERSION" '$1=="ANDROID_" ver { print $2 }' config.file

android-4.4.4_r1
如果要将其传递给命令,请使用:

repo init -u https://android.googlesource.com/platform/manifest -b \
$(awk -F= -v ver="$ANDROID_VERSION" '$1=="ANDROID_" ver { print $2 }' config.file)

甚至不接近我的问题它是关于动态访问它,上下文可能不同,但工具是相同的
declare
内置间接扩展。我知道作者使用配置文件,并希望读取该配置以从中声明变量。我的配置文件在其上基本上是一个bash脚本,通过使用源配置文件绑定到主脚本,也可以查找这个答案!那看起来更像,我会给它一个机会,并在事后报告。希望我今天晚些时候能找到它,这不是我想要的,但实际上这是一个更整洁的方式来实现我想要做的,谢谢你的解决方案