动态生成变量并在shell脚本中获取相应的值

时间:2015-05-26 04:01:53

标签: bash shell

我编写了shell脚本,它从其他脚本获取变量(def.sh)

我的def.sh如下所示:

SERVERS[0]=host1.com
SERVERS[1]=host1.com

SERVER1_HOME_DIR="/path1"
SERVER2_HOME_DIR="/path2"

我的main.sh将尝试使用for循环中的def.sh中的这些变量:

count=1
for server in ${SERVERS[@]}
do
echo "value " $(echo server${count}_HOME_DIR) // I'm not getting   the /path1 here
count=`expr $count + 1`
done

您好,

它仍会打印值SERVER1_HOME_DIR& SERVER2_HOME_DIR

请帮助获取服务器主目录的值。

先谢谢。

1 个答案:

答案 0 :(得分:0)

您可以构建变量名称并将其存储在变量中并使用它。在大括号中进行变量扩展时,如果第一个char是!,则其余的可以是要展开的变量的名称,并且是“外部”扩展的变量的名称。试试吧:

name=SERVER${count}_HOME_DIR
echo ${!name}