私は下の構造を持つ単純なスクリプトを持っています。私は不定期に実行されるこのサブプロセスを持っています。現時点では、ユーザーがプロセスを手動で強制終了するときにのみ停止します。私はread
行にこだまずにユーザーからの入力を聞く方法があるのだろうかと思っていました。つまり、サブプロセスが実行されている間、バックグラウンドで、ユーザーがターミナルに「quit \n
」と入力したかどうかを確認します。BASH:他のプロセスを待つことなくユーザの入力を聞きます。
...
if [[ option = "3" ]]; then
while [2 -lt 4]; #THIS IS WHERE I WANT TO CHANGE TO LISTENING FOR INPUT TO QUIT
#Some sub process that continues to run
done
fi
....
ありがとうございます!申し訳ありませんが、これはひどく言われている場合、私は問題を説明するためのより良い方法を考えることができませんでした。私のブレインストーミングの試みに関しては、while
の変数を使用して、 "quit"に等しくなるまでこれを行うことができます。しかし、その変数を入力に設定すると、私は迷うことになります。
サブプロセスはターミナルと対話する必要があります(つまり、特に入力を読み取ったり、出力を生成する)か、それともユーザーとやりとりする方法が異なるプロセスですか、たとえばX11 GUIインターフェイス? – wojtow
@wojtow、そうではありません。これは、端末に物を印刷しますが、ユーザとはまったくやり取りしません。実際には、ユーザーは 'Ctrl' +' C'でも停止することはできません。助けてくれてありがとう! –