Awesome Hacks!

プログラミング初心者なので地道に勉強していきます。分からない人の立場から整理していきます。

シェルスクリプト_動的な変数名を使う

変数名str_1,str_2,str_3をループで回したい…そんな時に。


【プログラム】

str_1="aaa1"
str_2="bbbbbb2"
str_3="c3"
 
for NUM in `seq 1 3`
do
        echo "NUM = $NUM"
        eval `echo "${str_'`printf $NUM`'}"`
        echo ""
done
exit 0


【実行結果】

$ test.sh
NUM = 1
aaa1
 
NUM = 2
bbbbbb2
 
NUM = 3
c3
$ 


今までずっとこれを求めていたがなかなかたどり着けなかった。

これこそ、かゆいところに手が届くという言葉が似合うテクだと思った(個人的に)。
うまくいかないときは一旦作った変数名を違う変数に入れて使うとよい。