GNU/Linux >> Tutoriels Linux >  >> Linux

bash :redirige stderr vers le fichier et stdout + stderr vers l'écran

Avec un bash récent, vous pouvez utiliser la substitution de processus.

foo 2> >(tee stderr.txt)

Cela envoie simplement stderr à un programme en cours d'exécution.

Plus portable

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

Cela fait du descripteur de fichier 3 une copie de la sortie standard actuelle (c'est-à-dire l'écran), puis configure le canal et exécute foo 2>&1 >&3 . Cela envoie le stderr de foo au même endroit que le stdout actuel, qui est le tube, puis envoie le stdout à fd 3, la sortie d'origine. Le tuyau alimente le stderr original de foo to tee, qui l'enregistre dans un fichier et l'envoie à l'écran.


Linux
  1. Rediriger toutes les sorties vers un fichier dans Bash

  2. Echo à la fois stdout et stderr

  3. Restauration de stdout et stderr à la valeur par défaut

  4. Est-il possible que le descripteur de fichier Linux 0 1 2 ne soit pas pour stdin, stdout et stderr ?

  5. Capture de STDERR et STDOUT dans un fichier à l'aide de tee

Comment rediriger stderr vers stdout dans Bash

Comment rediriger uniquement Stderr ?

Comment rediriger la sortie vers un fichier et stdout

Confus à propos de stdin, stdout et stderr ?

Rediriger la sortie de la commande vers le fichier et le terminal

Qu'est-ce que <() dans bash (et =() dans zsh) ?