Shell脚本中的变量替换

时间:2017-06-22 07:25:40

标签: bash shell

我已声明一个变量IS_abc=false,根据某些条件我将值更改为IS_abc=true

IS_abc=false
declare -a my_arr
my_arr = ('abc' 'pqr' 'xyz')
....
.... // some operation
IS_abc=true
for i in "${my_arr[@]}"
do
    //here i want to access value of $IS_abc  as true
    //how to do this
done

我尝试使用$IS_'$i'进行访问,但由于无效替换

而引发错误

告诉我,我在这里做错了什么?

2 个答案:

答案 0 :(得分:4)

您可以使用间接无效参考:

my_arr=('abc' 'pqr' 'xyz')
IS_abc=true

var="IS_${my_arr[0]}"
echo "${!var}"

<强>输出:

true

答案 1 :(得分:1)

我这样做:

value=`eval echo \\${IS_${i}}`

可能有更好的方法,但这应该有用。