next up previous contents index
suivant: 3.5 Contrôle de tâches monter: 3. Commandes de base précédent: 3.3 Commandes de manipulation   Table des matières   Index

Sous-sections


3.4 Redirections des entrées/sorties

Chaque programme sous UNIX dispose au moins de deux flux de données : l' entrée standard, utilisée en lecture, qui est normalement associée au clavier du terminal, et la sortie standard, utilisée en écriture, normalement associée à l'écran du terminal (ou à la fenêtre de lancement le cas échéant).

Tous les flux de données sont manipulés comme de simples fichiers : on utilisera par exemple la même commande pour lire un caractère au clavier, dans un fichier sur disque ou via une liaison réseau. Ceci simplifie grandement l'écriture des programmes et améliore leur réusabilité.

3.4.1 Redirections vers/depuis des fichiers

Il est très simple de rediriger l'entrée ou la sortie standard d'un programme lors de son lancement depuis un shell UNIX.

Pour la sortie, on utilisera la construction suivante :

        ls > resultat
Dans ce cas, au lieu d'afficher sur l'écran, la commande ls va créer un fichier nommé ici resultat et y écrire. Rien n'apparait à l'écran (sauf s'il se produit une erreur).

Si l'on désire ne pas effacer l'ancien contenu du fichier, mais écrire à sa fin, on peut utiliser >> :

        ls >> resultats

Enfin, pour rediger l'entrée standard, on utilise < :

        cat < UnFichier

Il est possible de rediriger l'entrée et la sortie en même temps :

        cat < UnFichier > Resultat

Notons enfin qu'il existe un troisième flux standard, utilisé pour l'écriture des messages d'erreur (nommé stderr en C, ou cerr en C++). Il se redirige avec >&.


3.4.2 Redirections vers des tubes

De façon similaire, il est possible de rediriger la sortie standard d'une commande vers l'entrée standard d'une autre commande grâce au tube ( pipe) noté |. Les différentes commandes s'exécutent alors en parallèle.
        # affiche le contenu du repertoire trie a l'envers
        ls | sort -r


next up previous contents index
suivant: 3.5 Contrôle de tâches monter: 3. Commandes de base précédent: 3.3 Commandes de manipulation   Table des matières   Index
Emmanuel Viennet
1999-01-05