Você pode redirecioná-los para arquivos temporários e (em um script) verificar se algo foi gravado na saída padrão.
Algo como
#!/bin/sh
mytemp=$(mktemp -d)
trap "rm -rf $mytemp" EXIT INT QUIT HUP
"$@" 2>$mytemp/error | tee $mytemp/output
[ -s $mytemp/output ] || cat $mytemp/error