行列構成ファイルを読み込んでループ処理するシェル
行列構成のファイルを読み込んでループ処理するシェル
1項目に「名前」、2項目に「電話番号」、3項目に「住所」が複数行書いたファイル「AAA」を作成します。
$ cat ./files/AAA AAA 090-1111-1111 Tokyo BBB 090-1111-2222 Osaka CCC 090-1111-3333 Aichi DDD 090-1111-4444 Fukuoka EEE 090-1111-5555 Okinawa $
ファイル「AAA」を読み込んで、
”1項目” さんは、電話番号が ”2項目” で、”3項目” に住んでいます。
をechoするシェルを作ります。
シェル内容はこのようになります。
while read NAME TEL ADDRESS ;do echo "$NAME さんは、電話番号が $TEL で、$ADDRESS に住んでいます。" done < ./files/AAA
done の後に、ファイル「./files/AAA」 を 「 < 」で 読み込ませています。
そして各レコードの、1項目を変数「NAME」、2項目を変数「NAME」、3項目を変数「ADDRESS」に代入し、echoする仕様です。
実行するとこのような結果になります。
$ while_echo.sh AAA さんは、電話番号が 090-1111-1111 で、Tokyo に住んでいます。 BBB さんは、電話番号が 090-1111-2222 で、Osaka に住んでいます。 CCC さんは、電話番号が 090-1111-3333 で、Aichi に住んでいます。 DDD さんは、電話番号が 090-1111-4444 で、Fukuoka に住んでいます。 EEE さんは、電話番号が 090-1111-5555 で、Okinawa に住んでいます。 $
複数の処理をまとめて実行したいときなどに使えます。