シェル、2つの文字列を連結して3番目の変数を参照

シェル、2つの文字列を連結して3番目の変数を参照

私のスクリプトで次のことをやろうとしています。

#/bin/bash -x
var1=www
var2=www2
var3=www3
var4=www4
for i in 1 2 3 4; do
   echo \$var$i
done

明らかに、これは期待どおりに機能せず、次のような結果が出力されます。

$var1
$var2
$var3
$var4

ループ内で変数を動的に参照する方法は?

ベストアンサー1

これをお探しですか?

$ cat indirection.bash
#!/bin/bash -x

var1=www
var2=www2
var3=www3
var4=www4
for i in 1 2 3 4; do
        s="var${i}"
        echo "${!s}"
done

 

$ ./indirection.bash
www
www2
www3
www4

おすすめ記事