echo $HOSTNAME 結果は変数 [重複] のキーになります。

echo $HOSTNAME 結果は変数 [重複] のキーになります。

属性
server1=abc,def,ghc
server2=xyz,tes,iuy

#!/bin/sh

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

man 1 bash説明する:

引数の最初の文字が感嘆符(!)の場合、最初のレベル変数間接参照が導入されます。 Bash は、残りの引数で構成される変数値を変数名として使用します。次に、その変数を展開し、引数自体の値ではなく、残りの置換にその値を使用します。これを間接拡張といいます。

$ server1=abc,def,ghc
$ HOSTNAME=server1
$ echo ${!HOSTNAME}
abc,def,ghc

おすすめ記事