シェルスクリプトでコマンドを実行しており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
そこでも動作しました。それがなければ、唯一の解決策はコマンドが完了した後だと思います。busybox
sh
tee
cat $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