小编Cal*_* Xu的帖子

在控制台上显示持久状态消息

我正在研究一个向stdout发送大量输出的程序,但我希望能够轻松地告诉程序正在做什么.我已经看到一些程序显示脚本或程序的输出,但控制台上的最后一行是"保留",这意味着命令的输出显示在屏幕上,但是最后一行(或两行,或者多行) )保留用于静态或偶尔改变的状态文本(例如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

.
. (etc.)
.

------------------------------------------------------------------------
Installing component 11/134...

在这个特定的例子中,即使控制台输出开始滚动,我也希望"安装组件11/134 ......"这一行保持在那里.最好,我也想把这条线保持在它上面.

这样,一旦我们进入程序的厚度并且通常shell将开始滚动,我们仍然会看到:

.
. …

bash shell stdout output

8
推荐指数
1
解决办法
1973
查看次数

在 bash 中可视化树,如 unix "tree" 的输出

给定输入:

apple: banana eggplant
banana: cantaloupe durian
eggplant:
fig:
Run Code Online (Sandbox Code Playgroud)

我想将它连接成以下格式:

?? apple
?  ?? banana
?  ?   ?? cantaloupe
?  ?   ?? durian
?  ?? eggplant
?? fig
Run Code Online (Sandbox Code Playgroud)

可能有也可能没有多个根元素(在上面的例子中,有两个根元素),我想找到一种解决方案,可以毫无问题地处理它们。

是否有任何命令行工具可以处理这种转换?如果做不到这一点,其他脚本语言中是否有任何东西可以轻松处理这个问题(我已经看过 Python 的,pprint但我也不知道如何将它用于类似的事情)?

python bash tree

5
推荐指数
1
解决办法
2188
查看次数

标签 统计

bash ×2

output ×1

python ×1

shell ×1

stdout ×1

tree ×1