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

Bash 如何将stdin复制到两个文件中?,bash,unix,io,Bash,Unix,Io,我需要有script.sh,它将创建文件f1.txt和f2.txt,其中包含发送到stdin的内容。例如: echo ABRACODABRA | script.sh …应创建内容为ABRACODABRA的文件f1.txt和f2.txt 我该怎么做 请提供script.sh的正文 您需要tee $ echo 'foo' | tee f1.txt f2.txt 或 抑制对标准输出的额外输出 我猜你真正的问题可能是如何读取脚本中的输入。在这种情况下,请参阅。那会给你一些 while read i

我需要有
script.sh
,它将创建文件
f1.txt
f2.txt
,其中包含发送到stdin的内容。例如:

echo ABRACODABRA | script.sh
…应创建内容为
ABRACODABRA
的文件
f1.txt
f2.txt

我该怎么做


请提供
script.sh
的正文

您需要
tee

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

抑制对标准输出的额外输出

我猜你真正的问题可能是如何读取脚本中的输入。在这种情况下,请参阅。那会给你一些

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

您的脚本可以如下所示:

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

如何在script.sh内部执行?与在外部执行的方式相同。我应该在script.sh内部编写什么?我将完全放弃while循环,只运行
teef1.text>f2.txt
(或类似)。我看不出在将shell传递给
tee
@Patrick之前让shell读取STDIN有什么好处(这是bos上面说的:),因为某些原因,它没有满足OP。
 #!/bin/bash
 read msg
 echo $msg > f1.txt
 echo $msg > f2.txt
 exit 0