GNU/Linux >> Tutoriels Linux >  >> Linux

Déterminez si la sortie est stdout ou stderr

Il n'y a que trois façons que je connaisse pour déterminer ce qu'un programme sortira vers STDOUT et ce que vers STDERR

  1. Lisez la documentation. Ou

  2. Testez la redirection †

  3. imprimer STDERR en rouge

†Par exemple :

program > program.stdout 2> program.stderr

Examinez ensuite les deux fichiers de sortie pour voir ce que le programme a écrit dans STDOUT et ce qu'il a écrit dans STDERR.

Au lieu de la redirection, vous pouvez diriger vers tee si vous avez besoin d'une sortie pour continuer à l'écran ainsi que dans un fichier. Voir https://stackoverflow.com/q/692000/477035


D'après votre demande commentée :

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

Linux
  1. Configurer le shell pour imprimer Stderr et Stdout dans différentes couleurs ?

  2. Comment rediriger la sortie d'un programme vers un fichier Zip ? ?

  3. Fermer la sortie standard (>&-) ?

  4. Comment savoir si la sortie d'une commande ou d'un script shell est Stdout ou Stderr ?

  5. Les rapports d'avancement/informations de journalisation appartiennent-ils à Stderr ou Stdout ?

Comment rediriger stderr vers stdout dans Bash

Qu'est-ce que Bonjour sur mon ordinateur ? Guide PC du programme Windows 10 Bonjour

Qu'est-ce que '/dev/null 2&1' sous Linux

Déterminer si le chemin relatif ou absolu dans le programme shell

Pourquoi la sortie de certains programmes Linux ne va-t-elle ni à STDOUT ni à STDERR ?

Qu'est-ce qui peut provoquer un signal 11 ?