-
BASH > Les flux de redirection
sortie standard >
pour tous les messages (sauf les erreurs)
>: redirige dans un fichier et l’écrase s’il existe déjà>>: redirige à la fin d’un fichier et le crée s’il n’existe pas.sortie erreurs 2>
2> et 2>>
2>: redirige les erreurs dans un fichier (s’il existe déjà, il sera écrasé)2>>: redirige les erreurs à la fin d’un fichier (s’il n’existe pas, il sera créé)cut -d , -f 1 fichier_inexistant > toto.txt 2> erreurs.log
> toto.txt: redirige le résultat de la commande (sauf les erreurs) dans le fichiertoto.txt2> erreurs.log: redirige les erreurs éventuelles dans le fichiererreurs.logNOTE : il est possible d’utiliser
2>>pour ajouter les erreurs à la fin du fichier.2>&1
redirige les erreurs au même endroit et de la même façon que la sortie standard
cut -d , -f 1 fichier_inexistant > toto.txt 2>&1
Tout ira désormais dans
toto.txt: le résultat, de même que les erreurs.NOTE : Il n’est pas possible d’écrire
2>>&1. Il faut faire :cut -d , -f 1 fichier_inexistant >> toto.txt 2>&1
les erreurs seront ajoutées à la fin du fichier
toto.txtcomme le reste des messages./dev/null
tout ce qui va là-dedans disparaît immédiatement.
commande > /dev/null
< et <<
<: lire depuis un fichier, envoie le contenu d’un fichier à une commande<<: passe la console en mode saisie au clavier, ligne par ligne. Toutes ces lignes seront envoyées à la commande lorsque le mot-clé de fin aura été écrit.sort -n << FIN
Continuer ainsi jusqu’à avoir fini son texte. Puis taper
FINpour arrêter la saisie.Combiner :
sort -n << FIN > nombres.txt 2>&1 > ... > FIN
Les nombres saisis au clavier seront envoyés à
nombres.txt, de même que les erreurs éventuelles.