从打印在后台的函数打印输出后,如何自动返回到bash提示符?
例如,当我在bash shell中运行以下脚本时:
fn(){
sleep 10
echo "Done"
exit
}
fn &
运行脚本后,它会立即返回我的提示.10秒后,它会打印"完成",然后在新行上显示一个闪烁的光标:
$ Done ?
脚本不再运行了,但是在我按下之前我没有收到提示Return.
打印"完成"后有没有办法强制返回bash提示符?
一个相关的问题是:是否有办法让后台任务通知终端打印新提示?但是,这个问题询问了一个背景计划.提供有答案适用于程序发送到后台,但似乎并没有为工作函数发送到后台(在我提供的例子).
澄清:我希望保存上面的整个代码片段(例如,as myscript.sh),然后将其作为前台脚本运行(例如,as bash myscript.sh).
编辑:以上当然只是一个MWE.这个问题的背景是:
fn &fn监视队列并tail在作业完成时终止.这里有一些不那么简单的代码:
watch_queue(){
until [ `qstat | grep $job | wc -l` -lt 1 ]; do
sleep 2
done
kill -9 $pid
tput setaf 7
tput setab 0
echo "Hit ENTER to return …