如何翻译:
echo "test" | tee -a test1 test2
到纯UNIX描述符重定向解决方案(联机更好,不需要PIPES)。
有可能吗?
如果您希望写入一个文件描述符(管道,套接字等)的字节在多个文件描述符上显示为可读数据,这些文件描述符彼此不是dup()
(但例如它们对应于两个不同的常规文件),那么在通用Unix系统上是不可能的。即使两个文件描述符是dup()
s,从其中一个读取字节后,也会使该字节从另一个中消失,因此它不能被读取两次。
如果你想在Bash中不使用|
,那么这是不可能的。
如果你想在Zsh中不使用|
,那么只要遵循chepner的评论:做setopt multios
,然后echo test >>test1 >>test2
。在后台Zsh将创建一个辅助进程来执行与tee -a
相同的复制操作。