Bash 在shell脚本中计算数组中的变量
我试图通过shell脚本读取Xcode构建设置,即,如果存在名为PRODUCT_NAME的构建设置,我将通过在shell脚本中写入Bash 在shell脚本中计算数组中的变量,bash,shell,Bash,Shell,我试图通过shell脚本读取Xcode构建设置,即,如果存在名为PRODUCT_NAME的构建设置,我将通过在shell脚本中写入echo${PRODUCT_NAME}来读取其值 现在,我在一个数组中得到这个产品的名称,让我们调用只有一个元素产品名称的myArr。我在数组上循环 for i in "${myarr[@]}" do : echo $i done echo$i只需输出产品名称即可。但是,我想写一些东西来计算${PRODUCT_NAME}并给出结果 我也尝试过eval ec
echo${PRODUCT_NAME}
来读取其值
现在,我在一个数组中得到这个产品的名称,让我们调用只有一个元素产品名称的myArr。我在数组上循环
for i in "${myarr[@]}"
do
:
echo $i
done
echo$i
只需输出产品名称即可。但是,我想写一些东西来计算${PRODUCT_NAME}并给出结果
我也尝试过eval echo$I
,但也只输出产品名称通过使用
回声“${!i}”
第二行给出所需的输出。我从这里得到了这个答案:当我解释您的问题时,您持有变量数组,在遍历时,您希望使用变量的实际值 我尝试了下面的代码,它几乎与您编写的代码相似,并且似乎可以工作
#!/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
输出:
产品属性:日历
产品性质:2.3
PRODUCT_属性:Sam您不需要
eval
,甚至不需要临时变量。只需使用echo${!myarr[0]}
。实际上,echo“${!i}”
是循环中所需的全部内容。数组是位置的(数字索引)还是关联的(文本键)?数组是位置的。