2

bashスクリプトのsdterrをコンソールとファイルにリダイレクトするにはどうすればよいですか? 私は使っている:

exec 2>> myfile

それをmyfileに記録します。コンソールにもログを記録するように拡張する方法は?

4

6 に答える 6

4

例えば:

exec 2>&1 | tee myfile
于 2012-08-09T08:13:46.207 に答える
1

またはあなたが使用することができますtail -f

$ touch myfile
$ tail -f myfile &
$ command 2>myfile
于 2012-08-09T08:26:33.383 に答える
0

出力をプロセスにリダイレクトし、そのプロセスで使用できteeます。

#!/usr/bin/env bash

exec 2> >( tee -a err.log )

echo bla >&2
于 2012-08-09T14:06:59.103 に答える
0

バックグラウンドで別のコマンド (cat など) でそのファイルを開いてみてください。

exec 2>> myfile
cat myfile & >&2
CAT_PID=$!
... # your script
kill $CAT_PID
于 2012-08-09T08:14:49.307 に答える
0

fifoを作成できます

$ mknod mypipe p

ティーに fifo から読み取らせます。stdout と指定したファイルに書き込みます

$ tee myfile <mypipe &
[1] 17121

コマンドを実行し、stderr を fifo にパイプします。

$ ls kkk 2>mypipe 
ls: cannot access kkk: No such file or directory
[1]+  Done                    tee myfile < mypipe
于 2012-08-09T08:24:29.920 に答える