Sommaire

De la chaîne au flux

Les commandes dans un environnement UNIX ont toutes un fonctionnement de base similaire : elles prennent un flux de données en entrée sur stdin, émettent un flux de données en sortie sur stdout et d’éventuelles erreurs sur stderr.

1. Utilisation d’une variable dans un flux

Beaucoup de commandes acceptent en argument un nom de fichier, qu’elles vont lire à la place de stdin, certaines permettent également de donner un nom de fichier de sortie, où elles écriront à la place de stdout. Cependant, la puissance des scripts provient bel et bien du chaînage que l’on peut effectuer d’une commande à l’autre, notamment grâce au pipe (ou tube, écrit « | »), tel qu’abordé au chapitre Les bases de l’écriture d’un script - Enchaînements et redirections.

Différentes variables sont initialisées lors du lancement du script (variables d’environnement, arguments donnés au script, etc.), d’autres peuvent être initialisées en cours d’exécution du script (avec la commande read par exemple). Dans tous ces cas, si on veut traiter le contenu de ces variables, il faut le transformer en flux, car peu de commandes acceptent de recevoir ces données sous forme d’arguments et peu de commandes sont étudiées pour directement lire une variable.

C’est pourquoi on utilise la commande echo (dont ...