7

電子メールのデバッグ目的で、パイプされたものをすべて取得してファイルにダンプする小さなシェルスクリプトを探しています。何か案は?

4

11 に答える 11

25

UNIXコマンドティーはこれを行います。

man tee
于 2008-09-16T20:35:22.267 に答える
11
cat > FILENAME
于 2008-09-16T20:35:58.660 に答える
10

似たようなものを必要としているのはあなただけではありません...実際、誰かが数十年前にその機能を望んでいて、teeを開発しました:-)

もちろん、>文字を使用してstdoutを任意のシェルのファイルに直接リダイレクトできます。

echo "hello, world!" > the-file.txt
于 2008-09-16T20:36:22.483 に答える
5

標準のUNIXツールティーはこれを行うことができます。入力を出力にコピーすると同時に、ファイルに記録します。

于 2008-09-16T20:36:22.310 に答える
2

Procmailを使用します。Procmailはあなたの友達です。Procmailはこの種のもののために作られています。

于 2008-09-16T20:35:16.493 に答える
1

スクリプトで分析したい場合:

while /bin/true; do
    read LINE
    echo $LINE > $OUTPUT
done

ただし、単に cat を使用できます。cat が stdin で何かを取得した場合、それは stdout にエコーされるため、それを cat >$OUTPUT にパイプする必要があります。これらは同じことを行います。2番目はバイナリデータでも機能します。

于 2008-09-16T20:36:50.483 に答える
1

シェルスクリプトが必要な場合は、これを試してください:

#!/bin/sh
exec cat >/path/to/file
于 2008-09-16T20:37:40.110 に答える
1

exim または sendmail がパイプに書き込んでいるものである場合、procmail は良い答えです。なぜなら、ファイルのロック/シリアル化を提供し、すべてを同じファイルに入れることができるからです。

ファイルに書き込みたいだけなら、 - tee > /tmp/log.$$ または - cat > /tmp/log.$$ で十分かもしれません。

于 2008-09-16T20:38:25.643 に答える
1

コマンドをファイル<<command>> | tee <<file>>にパイプするために使用します。<<command>><<file>>

これにより、出力も表示されます。

于 2008-09-17T00:03:12.360 に答える
0

は?質問が理解できませんか?

パイプを>> ~file

例えば

echo "Foobar" >> /home/mo/dumpfile

Foobar をダンプファイルに追加します (必要に応じてダンプファイルを作成します)。シェルスクリプトは必要ありません...それはあなたが探していたものですか?

于 2008-09-16T20:36:39.347 に答える
0

結果の出力を気にしない場合

cat - > filename

また

cat > filename
于 2008-09-16T20:37:05.820 に答える