Lorsque le shell est activé, il dispose de trois flots de communication qui sont l’entrée standard (stdin), la sortie standard (stdout) et la sortie des erreurs (stderr). L’entrée standard est associée par défaut au clavier (saisie des données) alors que la sortie standard (résultats de la commande) et la sortie des erreurs (messages d’erreur de la commande) sont associées par défaut à l’écran. La modification de l’une de ces affectations par défaut s’appelle une redirection et elle n’est valable que le temps de la commande sur laquelle elle porte.

La redirection la plus utilisée est celle de la sortie standard avec pour objectif la récupération du résultat d’une commande ailleurs qu’à l’écran, le plus souvent dans un fichier. Pour cela, il suffit d’ajouter sur la ligne d’une commande le caractère supérieur suivi du nom du fichier de redirection (> nom_fich). L’exécution de la commande avec la redirection entraîne la création d’un fichier de nom nom_fich.

Le principe de redirection s’applique aussi à la redirection des erreurs mais pour la distinguer de la sortie standard, il faut faire précéder le symbole de redirection du numéro du flot de communication (2> nom_fich). Ainsi, le fichier contient les erreurs de commande: essayez par exemple la commande erronée suivante ls-d 2> msg_erreur.

Dans son travail d’interprétation, le shell traite en premier les redirections et cela indépendamment du résultat de la commande associée. Par conséquent, lorsqu’une commande échoue, la création du fichier pour la redirection de la sortie standard a quand même été effectuée.  
 
Retour à la page de cours