如何窃取linux shell上运行的任何命令的输出?

如何窃取linux shell上运行的任何命令的输出?,linux,shell,zsh,Linux,Shell,Zsh,我正在使用bash/zsh。我想窃取shell终端上运行的任何命令的输出,并将其着色,然后在终端上显示 [user@machine]$ my-command-to-exe-tests --run-all-tcs bunch of output bunch of output bunch of output bunch of output [user@machine]$ 有没有不使用管道的方法。就像终端上显示的任何输出都必须通过我的程序。有没有可能钩住pts或tty来窃取终端上运行的任何命令的输

我正在使用bash/zsh。我想窃取shell终端上运行的任何命令的输出,并将其着色,然后在终端上显示

[user@machine]$ my-command-to-exe-tests --run-all-tcs
bunch of output
bunch of output
bunch of output
bunch of output
[user@machine]$

有没有不使用管道的方法。就像终端上显示的任何输出都必须通过我的程序。有没有可能钩住pts或tty来窃取终端上运行的任何命令的输出流?

如果您对随机着色没问题,那么您可以使用lolcat工具来完成这项任务

$ lolcat <(your command) 

$lolcat我想OP会像使用管道一样,将进程替换视为一种需要避免的事情,因此这也会
lolcat
。由于在终端上产生输出的每个命令都应该以有趣的颜色显示,我想我们必须编写一个特殊版本的终端(rxvt…)或外壳(zsh…)。请看一看,特别是Mikel给出的答案。注释还解释了这种方法的故障,但我想这是最接近的(除非您准备修改终端程序的代码)。着色是以某种有意义的方式进行的,还是希望对所有输出统一着色?在后一种情况下,为什么不在终端仿真器中更改颜色主题呢?