使用 cat + 重定向模拟 tee

Ole*_*den 4 bash io-redirection

我正在学习 bash 重定向,想知道是否有一种方法可以使用重定向来模拟 tee 命令。那可能吗?或者可能还有其他一些方法可以做到这一点。


在询问 tee 之前,我只是寻求一种使用 bash 表达式将一个流分成两个相同流的可能性。但这似乎是不可能的。

Ale*_*der 5

假设 Here 是一个与tee和具有相同功能的 bash 函数tee -a,假设该文件不包含\xc2\xa4\xc2\xa4\xc2\xa4\xc2\xa4\xc2\xa4\xc2\xa4\xc2\xa4\xc2\xa4\xc2\xa4\xc2\xa4!(您可以根据自己的喜好调整此字符串,以使文件极不可能包含它):

\n
tee(){\n  [ "$1" = \'-a\' ] && shift || rm -f "$1"\n  sed \'s/\\x0/\xc2\xa4\xc2\xa4\xc2\xa4\xc2\xa4\xc2\xa4\xc2\xa4\xc2\xa4\xc2\xa4\xc2\xa4\xc2\xa4!/g\' - | while read line; do\n    echo "$line" | sed \'s/\xc2\xa4\xc2\xa4\xc2\xa4\xc2\xa4\xc2\xa4\xc2\xa4\xc2\xa4\xc2\xa4\xc2\xa4\xc2\xa4!/\\x0/g\' >> "$1"\n  done\n}\n
Run Code Online (Sandbox Code Playgroud)\n

使用 bash 和 zsh 进行测试。

\n

使用示例:

\n
echo asdf | tee -a file\n
Run Code Online (Sandbox Code Playgroud)\n