有人能帮我写一个 bash 脚本吗?我似乎无法理解它。
财产
server1=abc,def,ghc
server2=xyz,tes,iuy
echo $server1
abc,def,ghc
echo $HOSTNAME
server1
通过以上信息,我想在测试变量中输出输出“abc,def,ghc”。
echo \$$HOSTNAME
$server1
bash-4.1$ test=`echo \$$HOSTNAME`
bash-4.1$ echo $test
8722HOSTNAME
如果有人能帮我用 perl/bash 或任何我可以使用的代码完成这个任务,请帮忙。谢谢。
答案1
您正在寻找:
${!HOSTNAME}
例如
echo ${!HOSTNAME}
这通常称为嵌套变量。bash 手册页解释了此构造的工作原理:
${!prefix*}
Names matching prefix. Expands to the names of variables whose
names begin with prefix, separated by the first character of the
IFS special variable.
但是,在这种特殊情况下要小心,因为$HOSTNAME
通常包含计算机的主机名,即应该是一个完全合格的域名,这些包含点,这在 Bash 变量名中无效。