【发布时间】:2017-01-15 12:19:48
【问题描述】:
好的,我有一个简单的脚本,其结构如下。我有这个将无限期运行的子进程。截至目前,它只会在用户手动终止进程时停止。我想知道是否有一种方法可以在不卡在read 行的情况下听取用户的输入。也就是说,在子进程运行的同时,在后台查看用户是否在终端输入“quit\n”。
...
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 条件中使用一个变量并说这样做直到它等于“退出”,但是将该变量设置为输入是我迷路的地方。
【问题讨论】:
-
子进程是否需要与终端交互(即专门读取输入和/或产生输出),或者它是否具有与用户交互的不同方式的进程,例如有一个X11 GUI界面?
-
@wojtow,不,它没有。它在终端中打印出来,但它根本不与用户交互。事实上,用户甚至无法通过
Ctrl+C来阻止它。感谢您的帮助!
标签: linux bash input process while-loop