评估shell脚本中的数组中的变量

时间:2016-11-06 01:32:05

标签: bash shell

我正在尝试通过shell脚本阅读Xcode构建设置,即如果有一个名为PRODUCT_NAME的构建设置,我通过在shell脚本中编写echo ${PRODUCT_NAME}来读取其值。

现在,我将这个PRODUCT_NAME设置为一个数组,让我们只调用一个元素PRODUCT_NAME来调用myArr。我将该数组循环为

for i in "${myarr[@]}"
do
:
    echo $i 
done

echo $i只会输出PRODUCT_NAME。但是,我想写一些评估$ {PRODUCT_NAME}并给我结果的内容。

我还尝试了eval echo $i,但也只输出了PRODUCT_NAME

2 个答案:

答案 0 :(得分:-1)

使用

解决了这个问题

echo "${!i}"

第二行根据需要提供输出。我从这里得到了这个答案:How to get a variable value if variable name is stored as string?

答案 1 :(得分:-1)

当我解释你的问题时,你持有变量数组,并且在遍历时,你想要使用变量的实际值。

我尝试了下面的代码,它与您编写的代码几乎相似,似乎有效。

#!/bin/bash

PRODUCT_NAME="Calendar"
PROCUCT_VER="2.3"
PROCUCT_OWNER="Sam"

PRODUCT_DETAILS=( $PRODUCT_NAME $PROCUCT_VER $PROCUCT_OWNER )

for PRODUCT_PROPERTY in "${PRODUCT_DETAILS[@]}"
do
    echo "PRODUCT_PROPERTY: $PRODUCT_PROPERTY"
done

输出:

PRODUCT_PROPERTY:日历

PRODUCT_PROPERTY:2.3

PRODUCT_PROPERTY:Sam