L'entrée standard, abrégée stdin, est le flux qu'un programme lit normalement pour recevoir des données. Dans un terminal interactif, le shell la relie généralement à votre saisie.
Text-Fu · Leçon 2
stdin (entrée standard)
Découvrez comment les programmes lisent l'entrée standard et comment Bash relie ce flux à un fichier.
Entrée standard et descripteur de fichier 0
Par convention, les trois flux standard utilisent ces descripteurs :
0: entrée standard (stdin)1: sortie standard (stdout)2: erreur standard (stderr)
Un programme choisit comment employer ces flux. Une commande conçue pour lire stdin attend souvent une saisie au terminal si aucun fichier ni autre source n'est fourni.
Quel descripteur représente conventionnellement l'entrée standard ?
Rediriger un fichier vers stdin
L'opérateur < demande à Bash d'ouvrir un fichier en lecture et de le relier à stdin :
$ cat < peanuts.txt
Hello World
Le shell traite < peanuts.txt ; cat lit simplement le descripteur 0. Le chemin ne lui est pas transmis comme opérande. Si le fichier n'existe pas ou ne peut être ouvert, le shell signale l'erreur et ne lance pas la commande avec cette entrée.
Quelle commande fait lire names.txt à sort sur son entrée standard ?
Opérande de fichier ou redirection d'entrée
Certaines commandes acceptent soit un nom de fichier, soit stdin, avec parfois une légère différence :
$ wc -l peanuts.txt
1 peanuts.txt
$ wc -l < peanuts.txt
1
Les deux formes comptent les mêmes lignes. Dans la première, wc connaît le nom reçu en argument. Dans la seconde, il ne reçoit qu'un flux et n'a aucun nom à afficher.
Pourquoi wc -l < peanuts.txt omet-il normalement peanuts.txt dans sa sortie ?
Combiner les redirections d'entrée et de sortie
Une même ligne peut rediriger plusieurs flux :
$ cat < peanuts.txt > banana.txt
Le shell réalise deux connexions indépendantes :
< peanuts.txtouvrepeanuts.txtcomme stdin decat.> banana.txtcrée ou tronquebanana.txtet le relie à stdout.
cat lit stdin et écrit sur stdout ; banana.txt reçoit donc le contenu source. Pour une copie ordinaire, cp peanuts.txt banana.txt exprime mieux l'intention ; cet exemple illustre les flux.
Dans cat < input.txt > output.txt, quel fichier fournit stdin et lequel reçoit stdout ?
Pour vous exercer :
- Rediriger les entrées et sorties sous Linux - Manipulez stdout, stderr et stdin avec les opérateurs de redirection.
- Redirection des flux de données - Combinez les flux standard et utilisez
/dev/null.
Leçon terminée
Vous avez terminé stdin (entrée standard)
Vous savez maintenant relier l'entrée standard d'une commande à un fichier.
Reconnaître stdin comme le descripteur 0.
Rediriger un fichier lisible avec
<.Distinguer un opérande d'une entrée redirigée.
Combiner volontairement les redirections stdin et stdout.
Conservez votre progression
Créez un compte gratuit pour enregistrer cette leçon et continuer sur n'importe quel appareil.
Créer un compte gratuit