如何将stdin复制到两个文件中?

时间:2012-06-24 08:00:14

标签: bash unix io

我需要script.sh,这会创建文件f1.txtf2.txt,其内容已发送到stdin。例如:

echo ABRACODABRA | script.sh

...应使用内容f1.txt创建文件f2.txtABRACODABRA

我该怎么做?

请提供script.sh的遗体!

2 个答案:

答案 0 :(得分:8)

您需要tee

$ echo 'foo' | tee f1.txt f2.txt 

$ echo 'foo' | tee f1.txt > f2.txt

将附加输出抑制为stdout。

我猜你真正的问题可能是如何从脚本中的输入读取。在这种情况下,请参阅this question。这会给你类似的东西

while read input; do
    echo $input | tee -a f1.txt > f2.txt
done

答案 1 :(得分:1)

您的脚本可能如下所示:

 #!/bin/bash
 read msg
 echo $msg > f1.txt
 echo $msg > f2.txt
 exit 0