backgroundでのread2007/11/27 07:36:29

新人君からシェルスクリプトについて質問を受けた。

バックグラウンドでreadコマンドを使うとループしちゃうんですが・・・。

read コマンドがループするんじゃなくて、ループ中に read を入れてるわけですが、 バックグラウンドで端末からの入力を待つなんて、出来ないだろうと思っていたので試したこともなかった。 ちょいと調べてみてわかったのは

バックグラウンドでttyからの入力を待つと、SIGTTYINを受けて異常終了する

ということくらい。(これも正確には正しくないのかも知れないが・・・。)

ps コマンドなんかだと、バックグラウンドで起動したプロセスでも、 tty は紐づいてるみたいに見えるけど、 やっぱり切り離されてるのかな? (表示上だけ紐づいてるように見える?) よくわからん。

とりあえず、新人君には入力待ちを止めさせました。 特に意味もなかったんで。