Programmation Bash/Redirections
Flux
[modifier | modifier le wikicode]Sous Unix, chaque processus possède trois flux :
- la sortie standard, qui est utilisée pour afficher les résultats d'un programme ;
- la sortie standard des erreurs, qui permet d'afficher les messages correspondant aux erreurs survenues lors de l'exécution du programme ;
- l'entrée standard, qui permet d'envoyer des données au programme.
Par défaut les deux flux de sortie sont envoyés sur le terminal de l'utilisateur et l'entrée est prise sur le clavier. Tout étant représenté par des fichiers sous Unix, cela correspond à lire dans le fichier représentant le clavier pour l'entrée standard et écrire dans le fichier représentant le terminal pour les sorties standards.
Redirections
[modifier | modifier le wikicode]Bash et Ksh permettent de rediriger les trois flux standards, ce qui revient à associer le flux à un fichier différent :
com > fic
redirige la sortie standard decom
dans le fichierfic
;com 2> fic
redirige la sortie des erreurs decom
dans le fichierfic
;com < fic
redirige l'entrée standard decom
dans le fichierfic
.
Tubes
[modifier | modifier le wikicode]Un tube permet de rediriger la sortie standard d'une commande dans l'entrée standard d'une autre commande.
commande1 | commande2
est (presque) équivalent à
commande1 > fichier_temporaire commande2 < fichier_temporaire
Tee
[modifier | modifier le wikicode]Tee permet un embranchement, ce qu'il reçoit sur son entrée est redirigé vers un fichier et la sortie standard.
echo "toto" | tee f
affiche toto et créé le fichier f avec le texte toto.