如何在Unix Shell中获取嵌套在同一配置文件中的变量的值

时间:2018-10-05 08:56:05

标签: linux bash shell unix sh

我有定义变量的配置文件

A=b c d
b=BALL
c=CAT
d=DOG

这是我的脚本:

for word in $A
do
    for config in $word
    do
        echo $config
    done
    echo "End of nested for loop"
done

以上打印

b
c
d

我需要b c和d

Ball
CAT 
DOG

3 个答案:

答案 0 :(得分:2)

您必须访问变量所指向的变量,而不是变量本身:

for word in $A
do
    for config in ${!word}
    do
        echo $config
    done
    echo "End of nested for loop"
done

Here您可以找到更多信息

答案 1 :(得分:1)

您可以使用以下内容:

#!/bin/bash

A="b c d"
b=BALL
c=CAT
d=DOG


for word in $A
do
    for config in $word
    do
        echo ${!config}
    done
    echo "End of nested for loop"
done

答案 2 :(得分:1)

从逻辑上讲,您只有一个循环,没有嵌套循环,因此您也应该仅实现一个循环:

message my_string_var type 'E'.

顺便说一句,如果您只是在bash中执行,您将需要在作业周围使用引号引起来:

for variable in $A
do
  echo "${!variable}"
done