GNU/Linux >> Linux Esercitazione >  >> Linux

Determina se l'output è stdout o stderr

Ci sono solo tre modi che conosco per determinare cosa produrrà un programma su STDOUT e cosa su STDERR

  1. Leggi la documentazione. Oppure

  2. Sperimenta con il reindirizzamento†

  3. print STDERR in rosso

†Ad esempio:

program > program.stdout 2> program.stderr

Quindi guarda i due file di output per vedere cosa ha scritto il programma su STDOUT e cosa ha scritto su STDERR.

Invece del reindirizzamento puoi reindirizzare a tee se hai bisogno che l'output continui sullo schermo oltre che in un file. Vedi https://stackoverflow.com/q/692000/477035


In base alla tua richiesta commentata:

{ { command; } 2>&3 | sed 's/^/STDOUT: /'; } 3>&1 1>&2 | sed 's/^/STDERR: /'

Linux
  1. Come reindirizzare l'output di un programma su un file zip?

  2. Chiusura dell'output standard (>&-)?

  3. Come sapere se l'output di un comando o di uno script di shell è Stdout o Stderr?

  4. I rapporti sullo stato di avanzamento/le informazioni di registrazione appartengono a Stderr o Stdout?

  5. Mostra solo Stderr sullo schermo ma scrivi sia Stdout che Stderr su file?

Come reindirizzare stderr a stdout in Bash

Cos'è Bonjour sul mio computer? Guida per PC del programma Bonjour di Windows 10

Che cos'è "/dev/null 2&1" in Linux

Reindirizza tutto l'output su file in Bash

Come reindirizzare stderr e stdout a file diversi nella stessa riga nello script?

Perché l'output di alcuni programmi Linux non va né a STDOUT né a STDERR?