【发布时间】:2014-02-27 15:32:19
【问题描述】:
我正在开发一个向标准输出发送大量输出的程序,但我希望能够轻松判断程序在做什么。我见过一些程序显示脚本或程序的输出,但控制台上的最后一行是“保留的”,这意味着命令的输出显示在屏幕上,但最后一行(或两行,或多行) ) 保留用于静态或偶尔更改的状态文本(例如Building <xxxxxx>...)。这样,人们可以看到脚本/程序的输出以进行调试/故障排除,而且还可以快速浏览并查看程序的状态。 有什么办法可以用shell脚本来实现吗?我不介意使用内置的系统工具,例如awk,来格式化文本,只要使用的工具是常用的在大多数系统上都可以找到。如果可能的话,我也想避免使用ncurses 和其他库。
如果你还是不明白我在说什么,我会在这里尝试说明:
make -gcc -NOFLAGS -someotherGibberishHere Component1afdjadfjfadkladfjk make -gcc -NOFLAGS -someotherGibberishHere Component2afdjadfjfadkladfjk make -gcc -NOFLAGS -someotherGibberishHere Component3afdjadfjfadkladfjk make -gcc -NOFLAGS -someotherGibberishHere Component4afdjadfjfadkladfjk make -gcc -NOFLAGS -someotherGibberishHere Component5afdjadfjfadkladfjk make -gcc -NOFLAGS -someotherGibberishHere Component6afdjadfjfadkladfjk make -gcc -NOFLAGS -someotherGibberishHere Component7afdjadfjfadkladfjk make -gcc -NOFLAGS -someotherGibberishHere Component8afdjadfjfadkladfjk make -gcc -NOFLAGS -someotherGibberishHere Component9afdjadfjfadkladfjk make -gcc -NOFLAGS -someotherGibberishHere Component10afdjadfjfadkladfjk make -gcc -NOFLAGS -someotherGibberishHere Component11afdjadfjfadkladfjk . . (等等。) . -------------------------------------------------- ---------------------- 安装组件 11/134...在这个特定的示例中,即使控制台输出开始滚动,我也希望“正在安装组件 11/134...”这一行保持不变。最好,我也想把那条线也放在它上面。
这样,一旦我们进入程序的最深处并且通常外壳会开始滚动,我们仍然会看到:
. . (这里有更多的输出行) . make -gcc -NOFLAGS -someotherGibberishHere Component58afdjadfjfadkladfjk make -gcc -NOFLAGS -someotherGibberishHere Component59afdjadfjfadkladfjk make -gcc -NOFLAGS -someotherGibberishHere Component60afdjadfjfadkladfjk make -gcc -NOFLAGS -someotherGibberishHere Component61afdjadfjfadkladfjk make -gcc -NOFLAGS -someotherGibberishHere Component62afdjadfjfadkladfjk make -gcc -NOFLAGS -someotherGibberishHere Component63afdjadfjfadkladfjk make -gcc -NOFLAGS -someotherGibberishHere Component64afdjadfjfadkladfjk make -gcc -NOFLAGS -someotherGibberishHere Component65afdjadfjfadkladfjk make -gcc -NOFLAGS -someotherGibberishHere Component66afdjadfjfadkladfjk -------------------------------------------------- ---------------------- 安装组件 66/134...【问题讨论】:
-
最简单、最可靠的解决方案是在分屏模式下自动启动
screen或tmux,并分别运行两个单独的命令。 -
我已经研究了这些方法,但到目前为止,它们都是由最终用户执行的。有没有办法以编程方式建立它?
-
可能有一个(可能是可选的)专用状态行。寻找启用它并写入它的方法。
-
@CalebXu 是的,它们都具有以编程方式发送窗口拆分命令等功能。