1

良い一日

それらをダイアログのみの標準出力とファイル/root/sh/sh.log標準出力+出力エラーに送信するにはどうすればよいですか?

# I need
dialog          == standard output
/root/sh/sh.log == standard output + error output 

# My experimental
start 2>&1 /root/sh/menu.log | dialog --stdout --progressbox 20 200;

ありがとうございました

4

2 に答える 2

0

start 2 >>/root/sh/sh.log|のようなものを試してみます tee -a /root/sh/sh.log | ダイアログ

于 2012-07-13T11:06:02.857 に答える
0

teeコマンドとプロセスの置換を使用して試すことができます

{ start | tee >( dialog --stdout --progressbox 20 200) ; } > /root/sh/menu.log 2>&1

コマンド グループ内では、標準出力が に渡されます。これは、実際には入力をコマンドteeに渡したプロセス置換構造である「ファイル」に書き込みます。dialog標準出力用の分岐したパイプと考えてください。

標準エラーはリダイレクトされず、teeその入力が標準出力に戻されるため、両方ともコマンド グループから渡されます。まず、標準出力を目的のログ ファイルにリダイレクトし、次に標準エラーを標準出力がある場所に複製します。

于 2012-07-13T12:36:56.450 に答える