我有时想在中间输出管道的内容(不是我们都是吗?).
我通常这样做(是的,我知道还有其他的,可能更好的方式):
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命令返回连接到标准输入的文件的名称,该文件可能不一定是终端.在您的管道中,它是与前一个命令的标准输出相关联的“文件”.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。