Bash:将stdout从多个并发命令拆分为多个列

Arjun Mehta:

我正在使用单个&号在bash脚本中运行多个命令,如下所示:

commandA & commandB & commandC

它们每个都有自己的stdout输出,但是它们都混合在一起,使控制台混乱不堪。

我想知道是否有一种简单的方法可以使用column命令或类似方法将其输出管道到自己的列中即。就像是:

commandA | column -1 & commandB | column -2 & commandC | column -3

这种事情是新手,但从最初的挖掘看来,似乎像pr的东西可能是门票?还是column命令...?

Arjun Mehta:

遗憾地回答了我自己的问题。

提供的解决方案都不是我要找的。因此,我开发了自己的命令行实用程序:multiview也许其他人会受益?

它通过将进程的stdout / stderr传递到命令界面,然后启动“查看器”以在列中查看其输出来工作:

fooProcess | multiview -s & \
barProcess | multiview -s & \
bazProcess | multiview -s & \
multiview

这将显示其输出的整齐的列视图。您还可以通过在-s标志后添加一个字符串来命名每个进程

fooProcess | multiview -s "foo" & \
barProcess | multiview -s "bar" & \
bazProcess | multiview -s "baz" & \
multiview

还有其他一些选择,但这就是要点。

希望这可以帮助!

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章