シェルスクリプトで実行したいことがあって試行してみたのですがうまくいきません。
sh でも bash でも何でもいいですが。
やりたいことはこんなことです。
・あるキーワード列Aがあり、その各々に付随するキーワード列B,C,D….が存在する
・Aからひとつピックアップしたときに、それに対応するキーワード列を選択してループを回したい
うまく表現できないな。。。。
具体的に書くと、
A=( TEST1 TEST2 TEST3 TEST4)
TEST1_list=(OPT1 OPT3 OP5)
TEST2_list=(OPT2 OPT4 OPT6)
TEST3_list=(OPT1 OPT2 OPT3)
TEST4_list=(OPT3 OPT4 OPT5)
といった定義があって、ループで A からひとつとって来て、とってきたものに対応したリストをさらに内側のループで回したいのです。たとえな i が TEST1 なら、j のループは TEST1_list から要素をもってきながら回す、という感じです。
for i in ${A[@]}
do
for j in ここでAからピックアップしたものに対応したリストを持って来たい
do
ここで実行したい
done
done
問題は、i でピックアップした要素、たとえば TEST1 を使って TEST1_list という配列を認識させることで、${i}_list とかで文字列作っても、その配列とは認識してくれないです。
i と j の対応を、ベタに記述するという方法もありますが、スクリプト自体が長くなってイマイチだなと。
よい解決法があったら教えてください。