Sujet : Re: script sh / redirection de sorties
De : alain (at) *nospam* universite-de-strasbourg.fr.invalid (Alain Ketterlin)
Groupes : fr.comp.os.unixDate : 19. Mar 2022, 23:44:10
Autres entêtes
Organisation : Université de Strasbourg
Message-ID : <87pmmhwojp.fsf@universite-de-strasbourg.fr.invalid>
References : 1 2 3 4 5
User-Agent : Gnus/5.13 (Gnus v5.13) Emacs/25.2 (gnu/linux)
Thomas <
fantome.forums.tDeContes@free.fr.invalid> writes:
c'est bête qu'on doive en mettre de chaque coté du nom du fichier,
y a-t-il un moyen plus compact, du genre : ... 2>&1 1> fichier.log ... ?
1) 2>&1 : renvoie l'erreur (2) sur la même chose que la sortie (1, le
terminal, à ce stade)
2) 1> fichier.log (ou simplement "> fichier.log") : renvoie la sortie
sur le fichier
Donc l'erreur standard reste affectée au terminal (ou à ce à quoi était
affectée la sortie standard au moment où elle a été dupliquée).
>
ce que je comprend, c'est que ça n'est pas parfaitement intuitif, parce
que :
le 1er chiffre désigne le descripteur de fichier lui-même, tandis que le
2eme désigne sa destination.
cad que placé en 1ere ou en 2eme position, ils n'ont pas le même sens.
Il y a quand même quelque chose entre les deux : > pour écriture, < pour
lecture, et & pour indiquer qu'on fait référence à un descripteur ("...
1>2" redirige la sortie standard sur un fichier nommé 2).
En fait ce sont des notations pour les appels système de gestion des
descripteurs (dans la suite [n] représente un entier optionnel, {n} un
entier obligatoire) :
[n]> nom : f=open(mot)+dup2(f,n)+close(f)
[n]>&{m} : dup2(m,n)
[n]>&- : close(n)
(etc. pour les variantes >> et aussi < et d'autres encore). Unix pur jus.
Quant à parler d'intuition à propos des descripteurs de fichiers, même
un dinosaure comme moi ne s'y risquerait pas.
-- Alain.