Programmation Bash/Flux et redirections
En Bash.
Chaque application lancée en Bash a les flux d'entrée/sortie (stdin, stdout, stderr) que lui confère l'environnement bash (cf man : ENVIRONNEMENT D'EXÉCUTION DES COMMANDES), en plus des flux stocké (fichier) ou en transit(ex : tube nommé)
Sous les systèmes Unix, chaque processus possédera trois descripteurs de flux :
Par défaut les deux flux de sortie sont envoyés sur le terminal de l'utilisateur (écran) et l'entrée prend ses données depuis le clavier. Tout comme avec les fichiers standards, il est possible de lire (sortie) et d'écrire (entrée) sur les descripteurs de flux.
Boîte à outils redirectionnels.
Les trois flux standards peuvent être redirigés vers d'autres sources autres que le clavier ou l'écran. Par exemple, on peut ordonner à un processus de diriger sa sortie standard vers un fichier. Pour cela, les numéros des descripteurs de flux sont utilisés. Les outils pour réaliser ces redirections sont les suivants :
cat tautologique.
La commande codice_4 recopie l'entrée standard sur la sortie standard. Pour quitter cette commande, utiliser la combinaison de touches CTRL D. Par exemple :
Par défaut, codice_4 prend ses données en entrée ligne par ligne. Ce qui explique qu'à chaque fois que l'on tape entrée, les caractères inscrits sur l'entrée standard via le clavier sont recopiés sur la sortie standard. Cette commande peut prendre un fichier comme entrée standard.
Exemple :
Redirection de la sortie standard.
On peut utiliser cat pour créer un fichier texte rapidement, en utilisant la redirection de la sortie standard vers un fichier. 
Exemple :
Souvent, dans les scripts bash, on utilise l'astuce suivante pour créer un fichier texte dynamiquement :
Pour ajouter du contenu à un fichier, il suffit d'utiliser codice_6.
Redirection de la sortie d'erreur standard.
La bonne gestion des messages d’erreur est une des clés de la réussite d’un script. Il est possible de collecter proprement ces messages grâce à la redirection. Lorsqu'on lance la commande codice_4 sur un fichier qui n'existe pas, on obtient un message d'erreur codice_8. On peut vérifier que ce message est un bien un message d'erreur en redirigeant la sortie d'erreur standard vers un fichier.
Concaténation dans un fichier.
Par défaut, lorsque l'on redirige la sortie standard d'un processus dans un fichier, ce fichier est écrasé par le nouveau contenu. Dans le cas d'un journal d'erreur, ceci peut s'avérer fâcheux, car la journalisation est écrasée à chaque nouveau message. Pour concaténer un message au contenu existant d'un fichier, on utilise codice_6. En poursuivant l'exemple du paragraphe précédent, on obtient :
Tubes.
Un tube permet de rediriger la sortie standard d'une commande vers l'entrée standard d'une autre commande.
ou pour connecter en plus la sortie d'erreur de la commande1 sur l'entrée de la commande2:
La commande suivante codice_10 liste le contenu d'un répertoire et ne sélectionne que les fichiers dont le nom se termine par codice_11. La figure suivante illustre la redirection de la sortie standard de codice_12 (la liste des fichiers d'un répertoire) vers l'entrée standard de la commande codice_13.

Programmation Bash/Notions essentielles du shell bash