我编写了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
请帮助获取服务器主目录的值。
先谢谢。
答案 0 :(得分:0)
您可以构建变量名称并将其存储在变量中并使用它。在大括号中进行变量扩展时,如果第一个char是!
,则其余的可以是要展开的变量的名称,并且是“外部”扩展的变量的名称。试试吧:
name=SERVER${count}_HOME_DIR
echo ${!name}