如何在没有循环的连续变换管道中显示每个步骤的结果?

jwb*_*ley 1 bash pipe

考虑以下示例Bash one-liner,其中字母"h","e"和"o"一次一个地从单词"hello"中删除,按顺序排列.只留下两个"l"字母;

$ echo "hello" | tr -d h | tr -d e | tr -d o
ll
Run Code Online (Sandbox Code Playgroud)

我试图找到一种方法,用于在一个班轮内向屏幕显示每个命令的输出,因此运行它的其他人可以看到发生了什么.继续上面的例子,我想输出如下;

$ echo "hello" | tr -d h | tr -d e | tr -d o
hello
ello
llo
ll
Run Code Online (Sandbox Code Playgroud)

这可能吗?根据上面单行的操作,我们将命令的输出带到垂直管道的命令.所以我假设我必须从管道中断打印到stdout,这会中断我写的"命令链".或者也许tee可以在这里使用,但我似乎无法实现欲望的影响. 更新:tee不会工作,因为它的输出仍然在管道的边界内,呃!

非常感谢.

ams*_*ams 6

这仅适用于终端:

echo hello  | tee /dev/tty |
    tr -d h | tee /dev/tty |
    tr -d e | tee /dev/tty |
    tr -d o
Run Code Online (Sandbox Code Playgroud)

所述/dev/tty设备输出重定向到当前的终端,不管正常输出变.