番号順に並んだ変数をどうやって読み込むかで少し悩んだので残しておきます。
*追記
配列を使うやり方も思いついたので、"【sh】for文を使って配列にした変数を読む
"にまとめました。
状況
次のような変数に値が入っています。
var1=1
var2=6
var3=13
var4=18
var5=24
var6=26
これらを順番に取り出したかったわけです。
方法
シェルスクリプトに精通していないので、文字列を変数と思わせる方法(日本語が思いつかない)で悩みました。
for i in `seq 6`
do
## 変数の名前を作成
num="var${i}"
## 上で作った名前と同じ変数の値をvarに代入
eval var='$'${num}
echo $var
done
結果
1
8
13
18
24
26
ちなみに、eval
は文字列を評価してから連結するコマンドだそうで、、、
eval '$'$変数名
で「変数の内容」を変数として変数名として参照できるそうです。ありがたい。
2桁表示
ついでに、値を2桁整数で表示したいときは
var=`printf %02d ${var}`
を追加すれば、
01
08
13
18
24
26
となります。
あとがき
今回のやり方を調べるにあたって、下記のサイトを参考にさせていただきました。
bashで文字列を変数名に展開する方法
また、初投稿なので、下記サイトで投稿の仕方を参考にしました。非常に助かりました。
Markdown記法 チートシート