Bash
一次追加一個文件,輸出到螢幕並從stderr重定向,沒有tee
我
time dd
在 shell 腳本中執行一個命令,我想將結果輸出到一個文件中,並在螢幕上列印出來。我目前正在執行的線路是:(time dd of=$dest_filepath if=$src_filepath bs=$block_size count=$block_count) >> $log_file 2>&1 &
雖然這給我留下了一個空文件並且沒有輸出到螢幕。為了完成這三件事,我需要做什麼?
請注意,我在帶有 Busybox 安裝的嵌入式系統中執行它,該安裝**不包含
tee
**因此這不是此問題的重複。
您所顯示的內容在我的系統上按預期工作。你確定你正在使用
bash
而不是sh
?無論如何,我嘗試了’sdash
和busybox
’ssh
並且它也在那里工作。在沒有 的情況下tee
,我認為唯一的解決方案是cat $logfile
在命令完成後。另一種可能性是建立一個
busybox
被呼叫的連結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