昨日の問題は

どうもCygwinbashとかshのパイプラインが明示的に改行コードorEOFを示さないと終了しない仕様になっているようです。自動改行してくれるechoなら問題ないですがprintfを使うときは明示的に最後に\nを入れてやる必要があります。しかも日本語混ぜると文字化けで\nが食われます(笑*1。んー、腐っているのか順当な仕様なのか微妙なところですね。UNIX系ではEOFがないので恐らくパイプライン入り口側のプロセスのシグナルを拾っていると思うんですがそれをしていないんでしょうかね?

*1:Cygwinでは本来EUC主体で作られているプログラムをShift-JIS環境で動かしているため一部コマンド下での文字化けは避けられない