| France-Français |
|
|
|
![]() |
Utilisation d'HP-UX : Ordinateurs HP 9000 > Chapitre 3 Utilisation
d’un shellEntrée, sortie et erreur standards |
|
Chaque processus ouvre trois fichiers ordinaires : l’entrée standard (stdin), la sortie standard (stdout) et l’erreur standard (stderr). Les programmes utilisent ces fichiers comme suit :
La figure ci-dessous illustre la relation qui existe entre ces trois fichiers et le processus. Le shell vous permet de réacheminer la sortie standard d’un processus, de l’écran (par défaut) à un fichier. Ainsi, le texte généré par la commande est stocké dans un fichier ; c’est aussi un moyen commode de déterminer quels fichiers ou quelles unités périphériques (les imprimantes, par exemple) le programme utilise. Voici, dans sa forme la plus simple, la syntaxe de la commande stdout
commande est la commande dont la sortie est réacheminée, et fichsortie, le nom du fichier dans lequel le processus enregistre sa sortie standard. Si le fichier existe déjà, les anciennes données seront perdues. Si le fichier n’existe pas, il sera créé. Pour annexer la sortie à un fichier existant, utilisez deux signes « plus grand que » (>>). Cette figure indique où sont dirigés les fichiers stdin, stdout et stderr quand la sortie est réacheminée à un fichier. L’exemple ci-dessous illustre le réacheminement de la sortie, avec la commande who, qui affiche une liste des utilisateurs actuellement en cours de session sur le système. Au lieu d’afficher les codes utilisateurs sur l’écran du terminal, la sortie est réacheminée vers le fichier qui. who(1)
Le shell vous laisse réacheminer l’entrée standard d’un processus de telle sorte que l’entrée soit lue à partir d’un fichier au lieu de provenir du clavier. Pour réacheminer l’entrée d’un processus, séparez la commande du nom du fichier d’entrée par un signe « plus petit que » (<). Vous pouvez utiliser le réacheminement de l’entrée avec toutes les commandes qui acceptent l’entrée à partir de stdin (votre clavier). Voici, dans sa forme la plus simple, la syntaxe de la commande : stdin
commande est la commande dont l’entrée est réacheminée et fichentrée est le nom du fichier à partir duquel le processus lit l’entrée standard. Pour que le réacheminement réussisse, il faut que le fichier existe. Cette figure indique où sont dirigés les fichiers stdin, stdout et stderr quand l’entrée est réacheminée à un fichier. L’exemple qui suit illustre le réacheminement de l’entrée. D’abord, la sortie standard de la commande who est réacheminée à un fichier appelé nouv. Ensuite, la commande more affiche le contenu de nouv. Enfin, l’entrée standard de la commande wc (word count) est réacheminée de façon à provenir du fichier nouv : Utilisation de >
Utilisation de <
Dans l’exemple ci-dessus, la commande wc avec l’option -l compte le nombre de lignes dans le fichier d’entrée. Etant donné que l’entrée a été réacheminée sur nouv, ce nombre est égal au nombre d’utilisateurs connectés au système quand la commande who a été exécutée. Vous pouvez utiliser une commande pour réacheminer en même temps l’entrée et la sortie standards. N’utilisez pas le même nom de fichier pour l’entrée et pour la sortie standard. Quand les opérations d’entrée et de sortie utilisent le même fichier, le contenu original du fichier d’entrée est perdu. La figure indique où sont dirigés les fichiers stdin, stdout et stderr quand l’entrée et la sortie sont réacheminées d’un fichier et à un fichier. Dans l’exemple qui suit, la commande sort est utilisée pour trier un texte entré au clavier. CTRL+D met fin à l’entrée standard. La sortie standard s’affiche sur l’écran du terminal comme suit : sort(1)
Dans l’exemple suivant, l’entrée est réacheminée :
Dans l’exemple précédent, la commande sort utilise un fichier appelé sock comme entrée. Comme pour le premier exemple, la sortie standard s’affiche sur l’écran du terminal. Dans l’exemple suivant, l’entrée et la sortie sont réacheminées :
Dans cet exemple, la commande sort lit l’entrée à partir du fichier socks et enregistre la sortie dans le fichier sortsocks ; ainsi, la sortie standard (contrairement aux deux premiers exemples) ne s’affiche pas sur l’écran. Le shell vous permet de relier deux ou plusieurs processus, de telle sorte que la sortie standard de l’un soit utilisée comme entrée standard pour l’autre. La connexion entre les processus s’appelle pipeline. Pour relier la sortie d’un processus à un autre processus, séparez les commandes par une barre verticale (|). La syntaxe générale d’un pipeline est :
commande1 est la commande dont la sortie standard est réacheminée ou reliée à une autre commande et commande2 est la commande dont l’entrée standard constitue la sortie de la commande précédente. Vous pouvez combiner deux ou plusieurs commandes en un seul pipeline. La sortie d’une commande devient alors l’entrée de la commande suivante sur la ligne de commande :
Dans l’exemple qui suit, la sortie de la commande who est stockée dans le fichier nouv . Ensuite, le fichier nouv est utilisé comme entrée pour la commande wc : wc(1)
Avec un pipeline, ces deux commandes deviennent une seule commande :
Comme l’illustre cet exemple, l’utilisation de pipelines évite le recours à des fichiers intermédiaires temporaires. La sortie standard de la première commande est envoyée directement à la seconde commande et devient son entrée standard. La commande tee vous permet de détourner une copie des données transmises entre les commandes pour la placer dans un fichier, sans pour autant modifier le fonctionnement du pipeline. Dans l’exemple ci-dessous, on utilise la commande who pour déterminer qui est connecté au système. Dans cet exemple (qui sera repris plus loin dans la figure ci-dessous), la sortie de who est reliée à la commande tee, qui sauvegarde une copie de la sortie dans le fichier qui et transmet, inchangée, la sortie à la commande wc : tee(1)
HP-UX fournit des programmes filtres qui sont utiles dans les pipelines. Ces programmes acceptent du texte à l’entrée, transforment le texte d’une certaine façon et produisent du texte à la sortie. Les commandes des filtres comprennent adjust, awk, more, cut, grep, head, more, pr, rev, sed, sort, spell et tail. Pour plus de détails sur ces commandes, reportez-vous aux pages de manuel correspondantes. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|||||||||||||||