Unix
Unix:延遲標準錯誤顯示
有沒有辦法
stderr
在應用程序完成後顯示錯誤摘要(來自)?例如
rsync
,使用“–progress”顯示大量數據,包括錯誤。但是當它完成時 - 它只是說“有錯誤”。在這種情況下,我想顯示寫入 stderr 的所有內容,因此我不必滾動並蒐索究竟出了什麼問題:)PS 我知道在 C 中編寫這樣的實用程序是多麼簡單,但我想還有更多我不知道的方便的東西:)
處理此問題的包裝腳本:
#!/bin/sh TMPFILE=$(mktemp) "$@" 2>$TMPFILE if [ "$?" != "0" ]; then cat $TMPFILE fi
如果你把它保存到
/usr/local/bin/delaystderr
andchmod +x /usr/local/bin/delaystderr
中,你應該能夠以delaystderr rsync --progress
. 如果程序退出時沒有發出錯誤信號(返回非零),則不會列印 stderr;如果您願意,您可以刪除以開頭的行if
並fi
禁用該行為。我不知道你怎麼會比這更容易。
(注意:我還沒有實際測試過這個腳本,所以買家要小心)