我想编写一个可以作为背景任务运行的程序(即 my-thing &
),并且在必要时可以很好地提供相关的输出。
但是,随着对终端打印的背景任务,总会有一个令人讨厌的小进展:
bash-3.2$ my-thing &▏
bash-3.2$ my-thing &
bash-3.2$ -- Hello from my-thing!
-- now let me start doing what I do best ...
▏
…请注意,我们现在在光标之前没有提示,更不用说在我的程序已经打印出来时我的程序吐出输出的丑陋提示。
因此,我想要三件事,只有一件事我不知道该怎么做:
- 检测我的程序是否在后台运行,并相应地更改我的输出/操作(即打印出较少的无用信息;排队的更多信息仅在程序再次前景时输出; etceteras) )
- 清除提示(如果已经存在),当突然将信息打印到终端时,我们一直在 中进行背景
- Inform 我完成了要打印到终端的任何内容后的终端,以某种方式强迫它重新绘制一个新提示
第三是我绝对不知道该怎么做的
。尽管我在其他两个上有一些含义,但也将受到赞赏的任何链接或建议。
同样感谢,即使是任何程序(任何语言/环境)的链接,这些程序已经具有操作此操作的模式。因为我可以尝试逆转工程/Spelunk的实现。
这对我有用:
echo 'sleep 1; echo; echo hi' > /tmp/hi
chmod +x /tmp/hi
zsh
/tmp/hi &
asdfsadf # type whatever, here.
" hi"获得回声后,ZSH知道要使用" asdfasdf'完整的提示"。
所以,没什么大惊喜:ZSH比bash好。