シェルスクリプト_動的な変数名を使う
変数名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 $
今までずっとこれを求めていたがなかなかたどり着けなかった。
これこそ、かゆいところに手が届くという言葉が似合うテクだと思った(個人的に)。
うまくいかないときは一旦作った変数名を違う変数に入れて使うとよい。