Path: ...!news.mixmin.net!aioe.org!Faqf6A55NG1s8DSVkh3L9A.user.46.165.242.75.POSTED!not-for-mail From: Alain Ketterlin Newsgroups: fr.comp.os.unix Subject: Re: script sh / redirection de sorties Date: Thu, 17 Mar 2022 15:16:24 +0100 Organization: =?utf-8?Q?Universit=C3=A9?= de Strasbourg Message-ID: <87y218wton.fsf@universite-de-strasbourg.fr.invalid> References: <8735jhxx27.fsf@universite-de-strasbourg.fr.invalid> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Injection-Info: gioia.aioe.org; logging-data="28097"; posting-host="Faqf6A55NG1s8DSVkh3L9A.user.gioia.aioe.org"; mail-complaints-to="abuse@aioe.org"; User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/25.2 (gnu/linux) Cancel-Lock: sha1:J984E3oF01nSWvHqnF4GwBQeNaU= X-Notice: Filtered by postfilter v. 0.9.2 Bytes: 2629 Lines: 42 Thomas writes: >> - on fait : ... 1> fichier.log 2>&1 ... Je ne sais pas pourquoi j'ai =C3=A9crit "1> fichier.log", le 1 n'est pas n=C3=A9cessaire (mais inoffensif). Donc "commande > fichier.log 2>&1" > c'est b=C3=AAte qu'on doive en mettre de chaque cot=C3=A9 du nom du fichi= er, > y a-t-il un moyen plus compact, du genre : ... 2>&1 1> fichier.log ... ? L'ordre est important, les redirections sont faites de gauche =C3=A0 droite (Il n'y a pas "deux cot=C3=A9s" du nom du fichier.) Dans ton exemple, l'eff= et est : 1) 2>&1 : renvoie l'erreur (2) sur la m=C3=AAme chose que la sortie (1, le terminal, =C3=A0 ce stade) 2) 1> fichier.log (ou simplement "> fichier.log") : renvoie la sortie sur le fichier Donc l'erreur standard reste affect=C3=A9e au terminal (ou =C3=A0 ce =C3=A0= quoi =C3=A9tait affect=C3=A9e la sortie standard au moment o=C3=B9 elle a =C3=A9t=C3=A9 dup= liqu=C3=A9e). > (int=C3=A9r=C3=AAt : remplacement automatique avec moins de risque de se = tromper=20 > ou d'en oublier, par ex) C'est plus compliqu=C3=A9 que =C3=A7a, c'est un langage g=C3=A9n=C3=A9ral d= e manipulation des descripteurs de fichiers. Par exemple : commande 3>&1 1>&2 2>&3 3>&- intervertit sortie et erreur standard. L'op=C3=A9rateur [n]>&[m] ferme [n] (s'il est ouvert) et le remplace par une copie de [m]. Bref, c'est un langage pour traduire les appels syst=C3=A8me de manipulation des descripte= urs de fichiers (open/close/dup). -- Alain.