>
Sommaire
Dans Bash et certains autres shell, les caractères plus grand et plus petit sont des opérateurs de redirections. Ces opérateurs permettent de changer respectivement les flux de sortie et d'entrée des commandes.
La caractère plus grand permet de changer le flux de sortie standard des commandes.
Flux de sortie
Une commande à trois flux standard, le flux 0 ou stdin qui correspond au clavier par défaut, le flux 1 ou stdout qui permet d'afficher des messages à la console, et le flux 2 ou stderr qui permet d'afficher des messages d'erreur.
Les flux de sortie standard (1) et d'erreur standard (2) peuvent être redirigé dans un fichier à l'aide de ">" et "2>" respectivement.
Flux de sortie standard
La sortie standard est normalement affichée à la console, on peut la rediriger dans un fichier à l'aide de ">". Voici par exemple l'utilisation de ifconfig, et la même commande dont le résultat est inscrit dans un fichier:
$ ifconfig eth0 eth0 Link encap:Ethernet HWaddr 00:10:DC:C8:A5:4E inet addr:172.17.13.18 Bcast:172.17.13.255 Mask:255.255.255.0 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:220343681 errors:0 dropped:0 overruns:0 frame:0 TX packets:283924372 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:3617579632 (3.3 GiB) TX bytes:702189704 (669.6 MiB) $ ifconfig eth0 > result.eth0 $ cat result.eth0 eth0 Link encap:Ethernet HWaddr 00:10:DC:C8:A5:4E inet addr:172.17.13.18 Bcast:172.17.13.255 Mask:255.255.255.0 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:220343681 errors:0 dropped:0 overruns:0 frame:0 TX packets:283924372 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:3617579632 (3.3 GiB) TX bytes:702189704 (669.6 MiB)
Flux d'erreur standard
Le flux d'erreur est l'équivalent du flux de sortie mais concerne les messages d'erreur. Son numéro est 2 et sa redirection se fait à l'aide de "2>".
Voici par exemple une erreur de droit avec la commande wc, et son enregistrement dans un fichier:
$ wc -l /etc/shadow wc: /etc/shadow: Permission denied $ wc -l /etc/shadow 2> erreur.message $ cat erreur.message wc: /etc/shadow: Permission denied
Ignorer les messages
Pour le lancement de démons et de serveurs, les messages de sorties peuvent parfois être ignorées, et la commande ne doit pas être attaché au shell. Dans ce cas, on redirige les messages vers le fichier particulier /dev/null. Ce fichier est un descripteur particulier qui ne sauvegarde rien de ce qui y est écrit.
Voici par exemple le lancement de la commande srcd_run en ignorant les messages:
$ ./srcds_run -game tf +maxplayers 24 >/dev/null 2>/dev/null &
Notez le caractère "&" final pour lancer la commande en arrière plan.
Plutôt que de réécrire 2 fois "/dev/null", on peut utiliser le raccourci "&1" qui permet de rediriger le flux courant dans le flux de numéro 1.
Voici par exemple la même commande que la précédente avec le racourci de redirection:
$ ./srcds_run -game tf +maxplayers 24 >/dev/null 2>&1 &
Page de manuel
Les opérateurs de redirection ne sont pas des commandes standards mais sont paramètres interprété par le shell. Dans le cas de Bash, les opérateurs de redirections sont décrit dans la page de manuel de Bash, dans la section "redirection".
Contenus ©2006-2024 Benjamin Poulain
Design ©2006-2024 Maxime Vantorre