bash – 使用tee的wierdness:任何人都可以解释一下吗?
发布时间:2020-12-16 01:35:10 所属栏目:安全 来源:网络整理
导读:我有时想在中间输出管道的内容(不是我们都是吗?). 我通常这样做(是的,我知道还有其他的,可能更好的方式): terminal=$(tty) echo hello world |tee $terminal|awk '{print $2,$1}' 哪个输出 hello worldworld hello 这很好,在所有方面都很可爱. 除了我真的
我有时想在中间输出管道的内容(不是我们都是吗?).
我通常这样做(是的,我知道还有其他的,可能更好的方式): terminal=$(tty) echo hello world |tee $terminal|awk '{print $2,$1}' 哪个输出 hello world world hello 这很好,在所有方面都很可爱. 除了我真的想在不创建$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命令返回连接到标准输入的文件的名称,该文件可能不一定是终端.在您的管道中,它是与前一个命令的标准输出相关联的“文件”. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |