ファイルやコマンドの実行結果を入力として1行ずつ処理する
どちらも、サンプルはあるのですが、両方がまとめて書かれていることが
無かったのでまとめてメモしました。
どちらもechoで出力しているだけなので、このままだと意味はまったく無いですが
条件に当てはまるファイルのみリネーム場合などで使いました。
コマンドの実行結果を1行ずつ処理する場合
a.sh
#!/bin/sh
ls *sh| while read line
do
echo $line
done
実行結果
~ $ ./a.sh
a.sh
b.sh
ファイルに出力された実行結果を1行ずつ処理する場合
b.sh
#!/bin/sh
while read line
do
echo "$line"
done < ${1}
実行結果
~ $ ls *sh > b.txt
~ $ cat b.txt
a.sh
b.sh
~ $ ./b.sh b.txt
a.sh
b.sh