Unix shell描述符重定向

时间:2014-06-19 12:08:03

标签: linux shell unix file-descriptor io-redirection

如何翻译:

echo "test" | tee -a test1 test2

纯UNIX 描述符重定向解决方案(oneliner更好,没有PIPES)。

有可能吗?

1 个答案:

答案 0 :(得分:2)

如果要将写入一个文件描述符(管道,套接字等)的字节显示为多个文件描述符的可读数据,这些文件描述符彼此不是dup() s(但是例如它们对应于两个不同的常规文件),然后在通用的Unix系统上是不可能的。即使两个文件描述符都是dup() s,在从其中一个文件描述符中读取字节后,它会使字节从另一个字节中消失,因此它不能被读取两次。

如果您想在不使用|的情况下在Bash中执行此操作,则无法实现。

如果您想在不使用|的情况下在Zsh中执行此操作,请按照chepner的评论:执行setopt multios,然后echo test >>test1 >>test2。在后台,Zsh将创建一个辅助进程来执行与tee -a相同的复制。