Sommaire

Environnement et communication

Les scripts shell sont rarement imaginés comme des entités totalement indépendantes et n’interagissant pas avec leur environnement. Bien au contraire, leur rôle est souvent lié à une interaction avec d’autres éléments, en particulier un utilisateur.

1. Entrée et sorties

Comme tous les processus exécutés sur une machine UNIX, un script shell en cours d’exécution a une entrée (stdin) et deux sorties (stdout et stderr).

Lorsqu’il est exécuté à la main par un utilisateur, un script est « connecté » avec le processus qui l’a exécuté (son parent), par exemple un terminal. Cela signifie que son entrée standard reçoit les données transmises par ce parent (dans le cas d’un terminal, ce sont les frappes au clavier) et sa sortie standard est envoyée à ce parent (dans le cas d’un terminal, celui-ci affiche à l’écran ce qui est retourné par le script).

C’est cela qui permet, par exemple, d’obtenir des données de la part de l’utilisateur avec la commande read (concrètement, cette commande lit sur stdin, elle n’est pas dédiée exclusivement à l’interaction avec un clavier) ou d’afficher des messages avec la commande echo (de la même manière, elle n’interagit pas avec un affichage, elle envoie simplement des données ...