ファイルの追加、画面出力、stderrからのリダイレクトは、すべて一度にティーを必要としません。

ファイルの追加、画面出力、stderrからのリダイレクトは、すべて一度にティーを必要としません。

シェルスクリプトでコマンドを実行しておりtime dd、結果をファイルに出力して画面に印刷したいと思います。現在実行中の行は次のとおりです。

(time dd of=$dest_filepath if=$src_filepath bs=$block_size count=$block_count) >> $log_file 2>&1 &

これにより、空のファイルが残り、画面に出力されません。これら3つを達成するにはどうすればよいですか?

私はBusyboxがインストールされている組み込みシステムでこれを実行しています。含まれていませんteeそれでは冗長ではありません。この問題

ベストアンサー1

表示された内容は私のシステムで期待どおりに機能します。bash代わりにを使用していますかsh?とにかく、私は私を使ってみましたが、dashそこでも動作しました。それがなければ、唯一の解決策はコマンドが完了した後だと思います。busyboxshteecat $logfile

busyboxもう1つの可能性は、呼び出しへのリンクを作成してtee実行してみることです。busybox私のDebianバージョンはこれをサポートしていますが、あなたのバージョンもサポートしているかどうかわかりません。

ln -s /bin/busybox /bin/tee

teeその後、正常に実行してみてください。

本当にそれを取得できない場合tee、唯一の他のオプションは次のとおりです。

foo=$( ( time dd if="file1" of="file2" bs=12 count=5 ) 2>&1 &)
echo "$foo"
echo "$foo" >> logfile

おすすめ記事