Les programmes communiquent au moyen de flux d'entrée et de sortie. La sortie standard, abrégée stdout, est le flux normalement employé pour les résultats ordinaires. Dans un terminal, le shell le relie initialement à l'affichage.
Text-Fu · Leçon 1
stdout (sortie standard)
Découvrez comment la sortie standard arrive au terminal et comment Bash la redirige vers des fichiers.
Écrire sur la sortie standard
La commande echo écrit ses arguments sur stdout :
$ echo Hello World
Hello World
Stdout correspond au descripteur de fichier 1, utile lorsque plusieurs flux sont redirigés. Les programmes disposent aussi de stdin et stderr, étudiés dans les prochaines leçons.
Sans redirection, où echo Hello World envoie-t-elle normalement sa sortie dans un terminal interactif ?
Remplacer un fichier avec >
Bash interprète > comme une redirection de sortie :
$ echo Hello World > peanuts.txt
Le texte ne s'affiche plus, car stdout va dans peanuts.txt. Le shell crée le fichier s'il manque et le tronque s'il existe, supprimant son ancien contenu.
$ cat peanuts.txt
Hello World
notes.txt contient déjà du texte. Que fait echo new > notes.txt ?
Le shell ouvre la destination avant la commande. Vérifiez donc le chemin : une faute peut tronquer un fichier même si la commande échoue ensuite.
Ajouter à un fichier avec >>
Utilisez >> pour ajouter la nouvelle sortie :
$ echo Another line >> peanuts.txt
$ cat peanuts.txt
Hello World
Another line
Comme >, >> crée une destination absente, mais ajoute au lieu de tronquer.
Quelle commande ajoute Finished à status.log sans effacer son contenu ?
La redirection appartient au shell
Le shell retire > et >> des arguments transmis, ouvre le fichier et établit la connexion. La commande continue simplement d'écrire sur stdout.
$ pwd > current-directory.txt
$ ls -la >> directory-list.txt
Qui interprète normalement > dans pwd > current-directory.txt ?
Pour vous exercer :
- Rediriger les entrées et sorties sous Linux - Manipulez stdout, stderr et stdin avec
>,>>,2>ettee.
Leçon terminée
Vous avez terminé stdout (sortie standard)
Vous savez maintenant rediriger stdout sans confondre remplacement et ajout.
Reconnaître stdout comme le flux des résultats ordinaires.
Remplacer un fichier avec
>.Ajouter avec
>>.Vérifier la destination avant son ouverture.
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