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

时间:2017-03-28 11:47:56

标签: 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_VERSION的值访问那些值。

我是如何尝试的示例:

#!/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等等。

提前致谢

1 个答案:

答案 0 :(得分:1)

您可以使用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)