さて、今日シェルスクリプトを書いていてハマった事を書く。 改行がついていないとその行は読み込まれないってこと。 たとえば、以下のようなスクリプト test.sh があったする。 while read line do echo $line done 動作は簡単、標準入力をそのまま出力するだけ。 $ echo aiueo > ./data.txt $ cat ./data.txt aiueo $ sh test.sh < ./data.txt aiueo ここまでは普通なんだけど、 次のような改行が含まれていない行は読み込まれない。 僕は小一時間ハマってしまった... $ echo -n aiueo > ./data.txt $ sh test.sh < ./data.txt # 何も出力されない。