Prova questo:
(myCommand | sed s/^/stdout:/ >> myLogfile) 2>&1 | sed s/^/stderr:/ >> myLogFile
Il primo tubo inserisce un prefisso stdout:
all'uscita standard myCommand
e lo aggiunge myLogFile
.
Le parentesi sono utilizzate per eseguire un comando singolo di tutto ciò. Dicono che ulteriori reindirizzamenti si applicano a ciò che è racchiuso tra parentesi e non solo a sed
.
Quindi l'errore standard viene reindirizzato all'output standard con 2>&1
(ricordare che l'output standard originale è già stato reindirizzato a myLogFile
). Il secondo tubo inserisce un prefisso stderr:
e lo aggiunge a myLogFile
.
ha scelto questa risposta perché è meglio preservare l'ordine, anche se è necessario scaricare l'output tutto il tempo ... –