bash – 使用tee的wierdness:任何人都可以解释一下吗?

前端之家收集整理的这篇文章主要介绍了bash – 使用tee的wierdness:任何人都可以解释一下吗?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有时想在中间输出管道的内容(不是我们都是吗?).

我通常这样做(是的,我知道还有其他的,可能更好的方式):

terminal=$(tty) 
echo hello world |tee $terminal|awk '{print $2,$1}'

哪个输出

hello world
world hello

这很好,在所有方面都很可爱.

除了我真的想在不创建$terminal变量的情况下这样做.
你说,简单,只需用管道中的’tee $(tty)’替换’tee $terminal’,而不需要变量?对?

错误.

echo hello world |tee $(tty)|awk '{print $2,$1}'

输出

world hello

换句话说,我吞下了管道中间的输出.

现在我接受这肯定是第一个世界的问题,但它让我烦恼,我想知道为什么第二个解决方案不起作用.

任何人?

如果您的系统支持它,您可以直接使用/ dev / tty访问当前终端:
echo hello world | tee /dev/tty | awk '{print $2,$1}'

(无论如何,该文件在Linux和Mac OS X中都可用.)

tty命令返回连接到标准输入的文件名称,该文件可能不一定是终端.在您的管道中,它是与前一个命令的标准输出相关联的“文件”.

原文链接:https://www.f2er.com/bash/383417.html

猜你在找的Bash相关文章