Table of Contents

Bash : redirections et communications inter-processus

Navigation rapide : Lundi / Mardi / Mercredi / Jeudi / Vendredi

Dans la norme POSIX qui régit notamment les systèmes Unix, chaque exécution de programme donne lieu à l'instanciation d'un processus en mémoire centrale du CPU.

Tout processus est caractérisé par trois flots de données :

  1. L'entrée standard correspond aux données saisies par l'utilisateur et est donc généralement réliée au clavier du terminal. Tout ce qui sera tapé au clavier sera donc reçu par l'entrée standard d'un processus.
  2. La sortie standard correspond aux données produites par le programme et est donc généralement reliée à l'écran du terminal. Tout ce que le processus (programme) écrira sur son entrée standard sera donc affiché à l'écran.
  3. La sortie d'erreur standard est similaire à la sortie standard mais ne contient que les messages d'erreur

Un système Unix offre la possibilité de rediriger ces flots.

Redirection de l'entrée standard (stdin)

grep 'root' < /etc/passwd
cat  /etc/passwd | grep 'root'

Redirection de la sortie standard (stdout)

sort /etc/passwd > passwd.sorted
sort /etc/passwd >> passwd.sorted
cat /etc/passwd | tr ':' ';'

Redirection de la sortie d'erreur standard (stdout)

ls /no/path/found 2> /tmp/lserror.txt
ls /no/path/found 2> /tmp/lserror.txt