Unix:延迟标准错误显示

kol*_*pto 0 unix reporting stderr

有没有办法stderr在应用程序完成后显示错误摘要(来自)?

例如,rsync使用“--progress”显示大量数据,包括错误。但是当它完成时 - 它只是说“有错误”。在这种情况下,我想显示写入 stderr 的所有内容,因此我不必滚动和搜索究竟出了什么问题:)

PS 我知道用 C 编写这样的实用程序是多么简单,但我想还有更多我不知道的方便的东西:)

Dav*_*ley 5

与 womble 的回答类似,您可以编写一个 bash 脚本,如下所示:

#!/bin/sh

set -e

TMPFILE=$(mktemp)

exec 2>$TMPFILE
trap 'cat "$TMPFILE"; rm -f "$TMPFILE" exit $?' INT TERM EXIT

command1
command2
command3
Run Code Online (Sandbox Code Playgroud)

这应该保存发送到整个脚本的 stderr 的所有内容,并在最后输出。与 womble 的回答一样,我还没有对此进行测试。