Unix

Unix:延遲標準錯誤顯示

  • March 2, 2016

有沒有辦法stderr在應用程序完成後顯示錯誤摘要(來自)?

例如rsync,使用“–progress”顯示大量數據,包括錯誤。但是當它完成時 - 它只是說“有錯誤”。在這種情況下,我想顯示寫入 stderr 的所有內容,因此我不必滾動並蒐索究竟出了什麼問題:)

PS 我知道在 C 中編寫這樣的實用程序是多麼簡單,但我想還有更多我不知道的方便的東西:)

處理此問題的包裝腳本:

#!/bin/sh

TMPFILE=$(mktemp)

"$@" 2>$TMPFILE

if [ "$?" != "0" ]; then
 cat $TMPFILE
fi

如果你把它保存到/usr/local/bin/delaystderrandchmod +x /usr/local/bin/delaystderr中,你應該能夠以delaystderr rsync --progress. 如果程序退出時沒有發出錯誤信號(返回非零),則不會列印 stderr;如果您願意,您可以刪除以開頭的行iffi禁用該行為。

我不知道你怎麼會比這更容易。

(注意:我還沒有實際測試過這個腳本,所以買家要小心)

引用自:https://serverfault.com/questions/45450