GNU/Linux >> Linux Esercitazione >  >> Linux

bash:reindirizza stderr al file e stdout + stderr allo schermo

Con una bash recente, puoi usare la sostituzione del processo.

foo 2> >(tee stderr.txt)

Questo invia semplicemente stderr a un programma che esegue tee.

Più portabilità

exec 3>&1 
foo 2>&1 >&3 | tee stderr.txt

Questo fa sì che il descrittore di file 3 sia una copia dello stdout corrente (cioè lo schermo), quindi imposta la pipe ed esegue foo 2>&1 >&3 . Questo invia lo stderr di foo nello stesso posto dell'attuale stdout, che è la pipe, quindi invia lo stdout a fd 3, l'output originale. La pipe alimenta lo stderr originale di foo to tee, che lo salva in un file e lo invia allo schermo.


Linux
  1. Come reindirizzare l'output su un file e Stdout in Linux

  2. Come reindirizzare solo Stderr?

  3. Reindirizza tutto l'output su file in Bash

  4. Shell:reindirizza stdout a /dev/null e stderr a stdout

  5. L'output del comando reindirizza al file e al terminale

Come reindirizzare stderr a stdout in Bash

Come reindirizzare l'output di un programma e continuare a farlo andare a Stdout?

Come reindirizzare Stderr e Stdout su file diversi e visualizzarli anche nel terminale?

Reindirizzamento e uscita del tubo?

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

Confuso su stdin, stdout e stderr?