我想写一个程序can作为后台任务运行(即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 ...
▏
...请注意,我们现在在光标之前没有提示,更不用说有一个丑陋的错误提示,我的程序在提示已被打印的情况下吐出输出。
因此,我想要三件事,其中只有一件我不知道如何去做:
- 检测我的程序是否在后台运行,并相应地改变我的输出/操作(即打印出更少的无用信息;将更多信息排队仅在程序再次前台运行时输出;等等)
- 突然将信息打印到我们后台的终端时清除提示(如果它已经存在)
-
Inform在我完成要打印到终端的任何内容后,以某种方式强制它在我添加的内容下方重新绘制新提示
第三个是唯一一个我完全不知道该怎么做的;尽管我对其他两个有一些了解,但任何链接或建议也将不胜感激。
同样值得赞赏的是,甚至可以链接到已经具有操作此功能的模式的任何程序(任何语言/环境);因为我可以尝试对它们的实现进行逆向工程/探索。
这对我有用:
echo 'sleep 1; echo; echo hi' > /tmp/hi
chmod +x /tmp/hi
zsh
/tmp/hi &
asdfsadf # type whatever, here.
在“hi”得到回显后,zsh 知道用完整的“asdfasdf”重新绘制提示符。
所以,这并不奇怪:zsh 比 bash 更好。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)