Lors de notre leçon précédente, nous avons appris à rediriger le flux de sortie standard (stdout). De même, nous pouvons également gérer le flux d'entrée standard (stdin). Par défaut, un programme reçoit son stdin du clavier, mais nous pouvons également utiliser des fichiers ou la sortie d'autres processus comme source d'entrée.
Comprendre stdin et stdout
Chaque processus en ligne de commande sous Linux fonctionne avec au moins deux flux de données fondamentaux : l'entrée standard (stdin) et la sortie standard (stdout). Un programme lit les données depuis stdin et écrit ses résultats sur stdout. Comprendre comment contrôler à la fois stdin et stdout est crucial pour un travail efficace en ligne de commande.
Comment rediriger stdin
Tout comme nous utilisons > pour la redirection de stdout, nous utilisons l'opérateur < pour rediriger stdin. Cette fonctionnalité puissante vous permet d'indiquer à une commande de lire son entrée à partir d'un fichier au lieu d'attendre que vous la tapiez au clavier. C'est un concept fondamental de la redirection d'entrée.
Exemple pratique avec cat stdin
Revenons au fichier peanuts.txt de la leçon précédente, qui contient le texte "Hello World". Considérez la commande suivante :
cat < peanuts.txt > banana.txt
Voici une explication de ce qui se passe :
- La partie
< peanuts.txtindique au shell derediriger stdinpour la commandecat, lui faisant lire depuispeanuts.txtau lieu du clavier. - La commande
cattraite son entrée. Dans ce cas, utilisercat stdinsignifie qu'elle lit le contenu depeanuts.txt. - La partie
> banana.txtredirige la sortie standard decatvers un nouveau fichier nommébanana.txt.
En fin de compte, le contenu de peanuts.txt est copié dans banana.txt. Cet exemple démontre efficacement comment gérer à la fois stdin et stdout dans une seule commande efficace.