stdinを2つのファイルにコピーする方法は?

私は script.sh を持っていなければなりません。これはstdinに送られた内容で f1.txt f2.txt 例えば:

echo ABRACODABRA | script.sh

... ABRACODABRA のコンテンツファイル f1.txt f2.txt を作成する必要があります。

これどうやってするの?

script.sh の本文を入力してください。

4
cp f1.txt f2.txt
追加された 著者 Gumbo,

2 答え

tee が必要です。

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

または

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

stdoutへの追加出力を抑制します。

あなたの本当の問題は、スクリプトの中の入力からどのように読み込むのだろうと思っています。この場合は、この質問を参照してください。それはあなたのようなものを与えるでしょう

while read input; do
    echo $input | tee -a f1.txt > f2.txt
done
8
追加された
@ user643540編集を参照してください
追加された 著者 Lev Levitsky,
@Patrickはボスが上に述べたものです:)何らかの理由でそれはOPを満足させませんでした。
追加された 著者 Lev Levitsky,
そして、私はそれを script.shの中でどうやって行うことができますか?
追加された 著者 Stepan Yakovenko,
私はscript.shの中で何を書くべきですか?
追加された 著者 Stepan Yakovenko,
あなたが外に出たのと同じ方法。
追加された 著者 bos,
私はwhileループ全体を捨てて、 tee f1.text> f2.txt (またはこれに類するもの)を実行します。シェルが tee に渡す前にSTDINを読んでも何の利点もありません。
追加された 著者 Patrick,

スクリプトは次のようになります。

 #!/bin/bash
 read msg
 echo $msg > f1.txt
 echo $msg > f2.txt
 exit 0
1
追加された