Avec la valeur par defaut d'IFS, sans les quotes, ca va etre decoupé en 3 mots:
"LS_...35:';", "export" et "LS_COLORS". A cause des "*", le premier mot est un pattern, donc le shell va chercher dans le repertoire courant les fichiers correspondant.
Avec la valeur par defaut d'IFS, sans les quotes, ca va etre
decoupé en 3 mots:
"LS_...35:';", "export" et "LS_COLORS". A cause des "*", le
premier mot est un pattern, donc le shell va chercher dans le
repertoire courant les fichiers correspondant.
Avec la valeur par defaut d'IFS, sans les quotes, ca va etre decoupé en 3 mots:
"LS_...35:';", "export" et "LS_COLORS". A cause des "*", le premier mot est un pattern, donc le shell va chercher dans le repertoire courant les fichiers correspondant.
Heureusement que j'ai utilisé "echo" a la place de "eval"!
-- Stephane
Rakotomandimby (R12y) Mihamina
( Tue, 14 Dec 2004 16:30:56 +0000 ) Stephane Chazelas : [...] <soupir> Encore un autre sujet ou je sens que je comprends pas grand chose. Avec le truc sur le character encoding, et les histoires de rxvt, ca commence a faire un sacré paquet... (snif...)
-- ASPO Infogérance - http://aspo.rktmb.org/activites/infogerance Unofficial FAQ fcolc - http://faq.fcolc.eu.org/ Linux User Group sur Orléans et alentours. Tél: + 33 2 38 76 43 65 (France)
( Tue, 14 Dec 2004 16:30:56 +0000 ) Stephane Chazelas :
[...]
<soupir>
Encore un autre sujet ou je sens que je comprends pas grand chose.
Avec le truc sur le character encoding, et les histoires de rxvt, ca
commence a faire un sacré paquet... (snif...)
--
ASPO Infogérance - http://aspo.rktmb.org/activites/infogerance
Unofficial FAQ fcolc - http://faq.fcolc.eu.org/
Linux User Group sur Orléans et alentours.
Tél: + 33 2 38 76 43 65 (France)
( Tue, 14 Dec 2004 16:30:56 +0000 ) Stephane Chazelas : [...] <soupir> Encore un autre sujet ou je sens que je comprends pas grand chose. Avec le truc sur le character encoding, et les histoires de rxvt, ca commence a faire un sacré paquet... (snif...)
-- ASPO Infogérance - http://aspo.rktmb.org/activites/infogerance Unofficial FAQ fcolc - http://faq.fcolc.eu.org/ Linux User Group sur Orléans et alentours. Tél: + 33 2 38 76 43 65 (France)
Christian CAMIER
Rakotomandimby (R12y) Mihamina wrote:
( Tue, 14 Dec 2004 16:30:56 +0000 ) Stephane Chazelas : [...] <soupir> Encore un autre sujet ou je sens que je comprends pas grand chose. Avec le truc sur le character encoding, et les histoires de rxvt, ca commence a faire un sacré paquet... (snif...)
C'est juste une histoire de caractères de contrôle, placés devant les
informations affichées, indiquant au terminal des informations sur les attributs d'affichage (couleur text/fond, etc.) transparents à l'ouil du lecteur. Il n'en reste pas moins, que ces informations sont perçues comme des caractères supplémentaires par les programmes lisant ces informations au travers d'un pipe.
Rakotomandimby (R12y) Mihamina wrote:
( Tue, 14 Dec 2004 16:30:56 +0000 ) Stephane Chazelas :
[...]
<soupir>
Encore un autre sujet ou je sens que je comprends pas grand chose.
Avec le truc sur le character encoding, et les histoires de rxvt, ca
commence a faire un sacré paquet... (snif...)
C'est juste une histoire de caractères de contrôle, placés devant les
informations affichées, indiquant au terminal des informations sur les
attributs d'affichage (couleur text/fond, etc.) transparents à l'ouil du
lecteur. Il n'en reste pas moins, que ces informations sont perçues
comme des caractères supplémentaires par les programmes lisant ces
informations au travers d'un pipe.
( Tue, 14 Dec 2004 16:30:56 +0000 ) Stephane Chazelas : [...] <soupir> Encore un autre sujet ou je sens que je comprends pas grand chose. Avec le truc sur le character encoding, et les histoires de rxvt, ca commence a faire un sacré paquet... (snif...)
C'est juste une histoire de caractères de contrôle, placés devant les
informations affichées, indiquant au terminal des informations sur les attributs d'affichage (couleur text/fond, etc.) transparents à l'ouil du lecteur. Il n'en reste pas moins, que ces informations sont perçues comme des caractères supplémentaires par les programmes lisant ces informations au travers d'un pipe.
Heureusement que j'ai utilisé "echo" a la place de "eval"!
Ce genre de piège à con, tu connais par la pratique et parce que tu es bon, ou pour t'être cassé les dents dessus ? C'est sûr qu'on doit mieux s'en rappeler après avoir viré son $HOME...
Heureusement que j'ai utilisé "echo" a la place de "eval"!
Ce genre de piège à con, tu connais par la pratique et parce que tu es bon,
ou pour t'être cassé les dents dessus ?
C'est sûr qu'on doit mieux s'en rappeler après avoir viré son $HOME...
Heureusement que j'ai utilisé "echo" a la place de "eval"!
Ce genre de piège à con, tu connais par la pratique et parce que tu es bon, ou pour t'être cassé les dents dessus ? C'est sûr qu'on doit mieux s'en rappeler après avoir viré son $HOME...
( Tue, 14 Dec 2004 16:30:56 +0000 ) Stephane Chazelas : [...] <soupir> Encore un autre sujet ou je sens que je comprends pas grand chose. Avec le truc sur le character encoding, et les histoires de rxvt, ca commence a faire un sacré paquet... (snif...)
Pour voir la difference entre _avec_ et _sans_ quotes,
( Tue, 14 Dec 2004 16:30:56 +0000 ) Stephane Chazelas :
[...]
<soupir>
Encore un autre sujet ou je sens que je comprends pas grand chose.
Avec le truc sur le character encoding, et les histoires de rxvt, ca
commence a faire un sacré paquet... (snif...)
Pour voir la difference entre _avec_ et _sans_ quotes,
( Tue, 14 Dec 2004 16:30:56 +0000 ) Stephane Chazelas : [...] <soupir> Encore un autre sujet ou je sens que je comprends pas grand chose. Avec le truc sur le character encoding, et les histoires de rxvt, ca commence a faire un sacré paquet... (snif...)
Pour voir la difference entre _avec_ et _sans_ quotes,
Heureusement que j'ai utilisé "echo" a la place de "eval"!
Ce genre de piège à con, tu connais par la pratique et parce que tu es bon, ou pour t'être cassé les dents dessus ?
C'est une regle elementaire de shell scripting, c'est dommage que l'accent ne soit pas plus mis dessus dans la plupart des manuels.
On quote toujours les variables et les "command substitution" (ou on utilise des variables intermediaires) sauf quand on a une bonne raison de ne pas le faire.
Et les bonnes raisons de ne pas le faire, c'est quand on veut utiliser justement le "word splitting" et/ou la "filename generation", auquel cas il faut bien s'assurer de la valeur d'IFS et du positionnement du flag "f".
Dans:
rm `ls`
vraissemblablement, je ne veux pas effacer *le* fichier dont le nom est l'output de ls. Je veux plutot considerer l'output de ls comme une liste de fichiers (separés par des n). Par contre, si un des fichiers s'appelle "*", ca ne veut pas dire pour autant que je veux prendre ca pour la liste des fichiers dans le repertoire courant.
Donc, si je veux faire rm `ls`, il faut d'abord que je fasse:
IFS=' ' # c'est une liste separee par des sauts de lignes (tant pis # pour les fichiers dont le nom contient des sauts de ligne) set -f # "*" doit etre pris pour le fichier "*", pas pour la # liste des fichiers dans le repertoire courant rm -- `ls` # les arguments sont bien des fichiers, pas des # options a passer a rm.
Heureusement que j'ai utilisé "echo" a la place de "eval"!
Ce genre de piège à con, tu connais par la pratique et parce que tu es bon,
ou pour t'être cassé les dents dessus ?
C'est une regle elementaire de shell scripting, c'est dommage
que l'accent ne soit pas plus mis dessus dans la plupart des
manuels.
On quote toujours les variables et les "command substitution"
(ou on utilise des variables intermediaires) sauf quand on a une
bonne raison de ne pas le faire.
Et les bonnes raisons de ne pas le faire, c'est quand on veut
utiliser justement le "word splitting" et/ou la "filename
generation", auquel cas il faut bien s'assurer de la valeur
d'IFS et du positionnement du flag "f".
Dans:
rm `ls`
vraissemblablement, je ne veux pas effacer *le* fichier dont le
nom est l'output de ls. Je veux plutot considerer l'output de ls
comme une liste de fichiers (separés par des n). Par contre, si
un des fichiers s'appelle "*", ca ne veut pas dire pour autant
que je veux prendre ca pour la liste des fichiers dans le
repertoire courant.
Donc, si je veux faire rm `ls`, il faut d'abord que je fasse:
IFS='
' # c'est une liste separee par des sauts de lignes (tant pis
# pour les fichiers dont le nom contient des sauts de ligne)
set -f # "*" doit etre pris pour le fichier "*", pas pour la
# liste des fichiers dans le repertoire courant
rm -- `ls` # les arguments sont bien des fichiers, pas des
# options a passer a rm.
Heureusement que j'ai utilisé "echo" a la place de "eval"!
Ce genre de piège à con, tu connais par la pratique et parce que tu es bon, ou pour t'être cassé les dents dessus ?
C'est une regle elementaire de shell scripting, c'est dommage que l'accent ne soit pas plus mis dessus dans la plupart des manuels.
On quote toujours les variables et les "command substitution" (ou on utilise des variables intermediaires) sauf quand on a une bonne raison de ne pas le faire.
Et les bonnes raisons de ne pas le faire, c'est quand on veut utiliser justement le "word splitting" et/ou la "filename generation", auquel cas il faut bien s'assurer de la valeur d'IFS et du positionnement du flag "f".
Dans:
rm `ls`
vraissemblablement, je ne veux pas effacer *le* fichier dont le nom est l'output de ls. Je veux plutot considerer l'output de ls comme une liste de fichiers (separés par des n). Par contre, si un des fichiers s'appelle "*", ca ne veut pas dire pour autant que je veux prendre ca pour la liste des fichiers dans le repertoire courant.
Donc, si je veux faire rm `ls`, il faut d'abord que je fasse:
IFS=' ' # c'est une liste separee par des sauts de lignes (tant pis # pour les fichiers dont le nom contient des sauts de ligne) set -f # "*" doit etre pris pour le fichier "*", pas pour la # liste des fichiers dans le repertoire courant rm -- `ls` # les arguments sont bien des fichiers, pas des # options a passer a rm.
Evidemment:
rm -- *
est plus approprié dans ce cas.
-- Stephane
gregg
Stephane Chazelas wrote:
eval "`dircolors -<option>`"
C'est un bug a signaler aux mainteneurs de la distribution/du systeme, a mon avis.
J'ai eu l'occasion d'utiliser un système GNU/Linux Fedora, ce matin, et le etc/profile.d/colors.sh lui non plus ne contenait pas de "" pour encadrer eval...
Je me demande combien de systèmes n'implémentent pas ?
++
Stephane Chazelas wrote:
eval "`dircolors -<option>`"
C'est un bug a signaler aux mainteneurs de la distribution/du
systeme, a mon avis.
J'ai eu l'occasion d'utiliser un système GNU/Linux Fedora, ce matin, et
le etc/profile.d/colors.sh lui non plus ne contenait pas de "" pour
encadrer eval...
Je me demande combien de systèmes n'implémentent pas ?
C'est un bug a signaler aux mainteneurs de la distribution/du systeme, a mon avis.
J'ai eu l'occasion d'utiliser un système GNU/Linux Fedora, ce matin, et le etc/profile.d/colors.sh lui non plus ne contenait pas de "" pour encadrer eval...
Je me demande combien de systèmes n'implémentent pas ?
++
Stephane Chazelas
2004-12-15, 23:09(+01), gregg:
Stephane Chazelas wrote:
eval "`dircolors -<option>`"
C'est un bug a signaler aux mainteneurs de la distribution/du systeme, a mon avis.
J'ai eu l'occasion d'utiliser un système GNU/Linux Fedora, ce matin, et le etc/profile.d/colors.sh lui non plus ne contenait pas de "" pour encadrer eval...
Je me demande combien de systèmes n'implémentent pas ? [...]
J'ai signalé le probleme de documentation aux mainteneurs de coreutils. C'est fixé dans la version accessible par CVS. Le developpeur a soumis un bug report pour debian (qui a le probleme apparemment), tu peux peut-etre en soumettre un aux gens de Fedora.
Cela dit, la plupart des scripts sur la plupart des distributions ont des problemes similaires. A croire que personne ne connait les principes de base du shell scripting (on ne peut pas trop les blamer, c'est tellement awkward).
-- Stephane
2004-12-15, 23:09(+01), gregg:
Stephane Chazelas wrote:
eval "`dircolors -<option>`"
C'est un bug a signaler aux mainteneurs de la distribution/du
systeme, a mon avis.
J'ai eu l'occasion d'utiliser un système GNU/Linux Fedora, ce matin, et
le etc/profile.d/colors.sh lui non plus ne contenait pas de "" pour
encadrer eval...
Je me demande combien de systèmes n'implémentent pas ?
[...]
J'ai signalé le probleme de documentation aux mainteneurs de
coreutils. C'est fixé dans la version accessible par CVS.
Le developpeur a soumis un bug report pour debian (qui a le
probleme apparemment), tu peux peut-etre en soumettre un aux
gens de Fedora.
Cela dit, la plupart des scripts sur la plupart des
distributions ont des problemes similaires. A croire que
personne ne connait les principes de base du shell scripting (on
ne peut pas trop les blamer, c'est tellement awkward).
C'est un bug a signaler aux mainteneurs de la distribution/du systeme, a mon avis.
J'ai eu l'occasion d'utiliser un système GNU/Linux Fedora, ce matin, et le etc/profile.d/colors.sh lui non plus ne contenait pas de "" pour encadrer eval...
Je me demande combien de systèmes n'implémentent pas ? [...]
J'ai signalé le probleme de documentation aux mainteneurs de coreutils. C'est fixé dans la version accessible par CVS. Le developpeur a soumis un bug report pour debian (qui a le probleme apparemment), tu peux peut-etre en soumettre un aux gens de Fedora.
Cela dit, la plupart des scripts sur la plupart des distributions ont des problemes similaires. A croire que personne ne connait les principes de base du shell scripting (on ne peut pas trop les blamer, c'est tellement awkward).