本を読む

読書やコンピュータなどに関するメモ

bash 4.0:名前つきバックグラウンドジョブ

 bash 4.0のmanpageでは「Coprocess」とだけ書かれている機能です。ksh由来だそうです。

 まずCoprocessを起動します。ここでは入出力を確認するため、Perlの$|を使ってバッファリングしないように指定しています。

$ coproc hoge { perl -pe '$|=1; s/$/xxx/'; }
[1] 29958

 このCoprocess「hoge」は、配列hogeに情報が入っています。まずhogeの標準入力にテキストを送ります。

$ echo fuga >&${hoge[1]}

 次に、hogeの標準出力からテキストを取り出します。

$ read -u ${hoge[0]} s; echo $s
fugaxxx

 処理された内容が出力されました。

 なお、今回の内容はBash Hackers Wikiの「The coproc keyword」の項を参考にしました。

コメント

コメントの投稿

管理者にだけ表示を許可する

トラックバック

http://emasaka.blog65.fc2.com/tb.php/562-e47fe703

 | HOME | 

Categories

Recent Entries

Recent Comments

Recent Trackbacks

Appendix

emasaka

emasaka

フリーター。
連絡先はこのへん

Monthly


FC2Ad