Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1754 connectés 

  FORUM HardWare.fr
  Linux et OS Alternatifs
  Codes et scripts

  Gutsy: bug "echo -e" dans une boucle for d'un Makefile

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Gutsy: bug "echo -e" dans une boucle for d'un Makefile

n°993457
Cytoplasm
Posté le 20-12-2007 à 12:07:58  profilanswer
 

Salut a tous,
 
 
J'ai eu une super idee qui est de mettre de la couleur dans mes Makefile, bon ok, ca craint mais on fait ce qu'on peut ;)
Serieusement, sous gutsy, quand je met un echo -e dans une boucle for d'un makefile, le echo -e se comporte comme un echo, ce qui est vraiment bizarre a moins que je loupe quelque chose de fondamental...
 
Voici ma target de Makefile

zarbi :
        echo -e bla
        for f in lib*; do      \
                echo -e bla; \
        done


 
et a l'execution, ca donne ceci:

fdemesma@raiu-ubuntu [~/spiral/spiral/autolib/deploy] $ make zarbi
echo -e bla
bla
for f in lib*; do             \
                echo -e bla; \
        done
-e bla
-e bla
-e bla
-e bla


 
J'avoue que ca me puzzle comme dirait un anglais!

mood
Publicité
Posté le 20-12-2007 à 12:07:58  profilanswer
 

n°993459
Cytoplasm
Posté le 20-12-2007 à 12:10:27  profilanswer
 

Ah oui, bien sur, j'oublais: executer la meme boucle for dans le shell marche tres bien comme attendu:


fdemesma@raiu-ubuntu [~/spiral/spiral/autolib/deploy] $ for f in lib*; do echo -e bla; done
bla
bla
bla
bla

n°993470
wedgeant
Da penguin inside
Posté le 20-12-2007 à 13:09:47  profilanswer
 

Cytoplasm a écrit :

zarbi :
        @echo -e bla
        @for f in lib*; do      \
        @        echo -e bla; \
        @done




Essayes avec ça ;)


---------------
Wedge#2487 @HS -#- PW: +∞ -#- Khaz-Modan/Boltiz @WoW
n°993471
Cytoplasm
Posté le 20-12-2007 à 13:18:08  profilanswer
 

ahah bien essaye!


zarbi :
        @echo -e bla
        @for f in spi*; do      \
                echo -e bla; \
        done


retourne  


fdemesma@raiu-ubuntu [~] $ make
bla
-e bla


 
et avec le @ a l'interieur, ca me donne une erreur
 


zarbi :
        @echo -e bla
        @for f in spi*; do      \
                @echo -e bla; \
        done


 


fdemesma@raiu-ubuntu [~] $ make
bla
/bin/sh: @echo: not found

n°993472
wedgeant
Da penguin inside
Posté le 20-12-2007 à 13:20:16  profilanswer
 

Ah oui, pour les boucles dans les Makefile, il faut tout mettre sur la même ligne ...

 

zarbi :
        @echo -e bla
        @for f in spi*; do echo -e bla; done



Message édité par wedgeant le 20-12-2007 à 13:20:40

---------------
Wedge#2487 @HS -#- PW: +∞ -#- Khaz-Modan/Boltiz @WoW
n°993473
Cytoplasm
Posté le 20-12-2007 à 13:22:36  profilanswer
 

en fait ca change rien a cause des backslash que je rajoute.


zarbi :
        @echo -e bla
        @for f in spi*; do echo -e bla; done



fdemesma@raiu-ubuntu [~] $ make
bla
-e bla


n°993474
wedgeant
Da penguin inside
Posté le 20-12-2007 à 13:23:53  profilanswer
 

Ma qué backslash ? [:cerveau kneu]


---------------
Wedge#2487 @HS -#- PW: +∞ -#- Khaz-Modan/Boltiz @WoW
n°993475
Cytoplasm
Posté le 20-12-2007 à 13:25:48  profilanswer
 

backslash de fin de ligne dans les posts precedents. je les ais enleve dans le dernier pour verifier mais, comme attendu, ca ne change rien ;(
merci pour le coup de main d'ailleurs...

n°993476
black_lord
Modérateur
Truth speaks from peacefulness
Posté le 20-12-2007 à 13:28:17  profilanswer
 

echo ne serait pas un builtin de make ? essaye /bin/echo peut être


---------------
uptime is for lousy system administrators what Viagra is for impotent people - mes unixeries - github me
n°993477
wedgeant
Da penguin inside
Posté le 20-12-2007 à 13:28:52  profilanswer
 

[:gratgrat]
 
Bon, je récupère un Makefile de chez moi ce soir, je te ramène ça demain ... paske là ça me parait bizarre ton truc.
 
En attendant: man make ;)


---------------
Wedge#2487 @HS -#- PW: +∞ -#- Khaz-Modan/Boltiz @WoW
mood
Publicité
Posté le 20-12-2007 à 13:28:52  profilanswer
 

n°993478
Cytoplasm
Posté le 20-12-2007 à 13:34:11  profilanswer
 

Dans le mille, mais ca reste tres etrange !!!???


all :  
        for f in spi*; do echo -e bla; which echo; /bin/echo -e bla; done



fdemesma@raiu-ubuntu [~] $ make
for f in spi*; do echo -e bla; which echo; /bin/echo -e bla; done
-e bla
/bin/echo
bla


 
Bug ou feature, telle est la question. Je viens d'essayer sur une RHEL et ca fait pas ca en tout cas.

n°993479
o'gure
Modérateur
Multi grognon de B_L
Posté le 20-12-2007 à 13:35:20  profilanswer
 

Sinon pour la couleur des makefiles, sous debian il y a le package color-make de mémoire.
Tout comme color-gcc pour la coloration des output de gcc
 
(un doute sur le nom des packages mais une recherche apt-cache te donnera le bon nom)


---------------
Relax. Take a deep breath !
n°993481
black_lord
Modérateur
Truth speaks from peacefulness
Posté le 20-12-2007 à 13:48:43  profilanswer
 

je parie un TT sur wedgeant que c'est un builtin [:dawa]


---------------
uptime is for lousy system administrators what Viagra is for impotent people - mes unixeries - github me
n°993483
Cytoplasm
Posté le 20-12-2007 à 13:57:37  profilanswer
 

Yop, c'est un bug connu du a (en effet) la prise en charge de echo par un built-in de /bin/sh qui refuse d'implementer les options de echo genre -e.
 
http://osdir.com/ml/os.netbsd.deve [...] 00076.html
 
Par contre, ca explique pas pourquoi make appelle bash en general et sh au milieu d'une boucle for !?

n°993486
Cytoplasm
Posté le 20-12-2007 à 14:05:45  profilanswer
 

mmh ce que je racontais avvec le changementde shell c'est des conneries...
j'avoue que je comprend pas le changement de comportement pourtant...

n°993487
o'gure
Modérateur
Multi grognon de B_L
Posté le 20-12-2007 à 14:07:13  profilanswer
 

Tenu :o


---------------
Relax. Take a deep breath !
n°993737
wedgeant
Da penguin inside
Posté le 21-12-2007 à 08:25:03  profilanswer
 

J'en connais un qui va perdre [:cupra]
 

[wedge@chimaera ~]$ ll
total 1,4G
-rw-r--r-- 1 wedge users 659M 2007-05-20 21:41 7\ secondes.avi
drwxr-xr-x 4 wedge users 4,0K 2007-12-20 00:27 bin/
drwxr-xr-x 3 wedge users 4,0K 2007-12-20 19:08 download/
drwxr-xr-x 9 wedge users 4,0K 2007-12-09 20:40 games/
drwxr-xr-x 6 wedge users 4,0K 2007-12-07 23:05 images/
-rw-r--r-- 1 wedge users 687M 2007-05-28 18:34 L'honneur\ du\ dragon.avi
-rw-r--r-- 1 wedge users   49 2007-12-20 19:13 Makefile
drwxr-xr-x 8 wedge users 4,0K 2007-11-02 19:26 packages/
drwxr-xr-x 8 wedge users 4,0K 2007-12-17 18:46 projects/
drwxr-xr-x 9 wedge users 4,0K 2007-12-14 19:47 public_html/
drwxr-xr-x 4 wedge users 4,0K 2007-12-20 00:30 slackroll/
[wedge@chimaera ~]$ cat Makefile  
gruik:
        @for i in *; do echo -e bla; done
[wedge@chimaera ~]$ make gruik
bla
bla
bla
bla
bla
bla
bla
bla
bla
bla
bla
[wedge@chimaera ~]$ cat Makefile  
gruik:
        @for i in *; do \
                echo -e bla; \
        done
[wedge@chimaera ~]$ make gruik
bla
bla
bla
bla
bla
bla
bla
bla
bla
bla
bla
[wedge@chimaera ~]$ make --version
GNU Make 3.81
Copyright (C) 2006  Free Software Foundation, Inc.
Ceci est un logiciel libre ; voir le source pour les conditions de copie.
Il n'y a PAS de garantie ; tant pour une utilisation COMMERCIALE que pour
RÉPONDRE À UN BESOIN PARTICULIER.
 
Ce logiciel est construit pour i486-slackware-linux-gnu


 
Et voila, na :p


Message édité par wedgeant le 21-12-2007 à 08:25:59

---------------
Wedge#2487 @HS -#- PW: +∞ -#- Khaz-Modan/Boltiz @WoW
n°993765
Cytoplasm
Posté le 21-12-2007 à 09:40:52  profilanswer
 

Bon je vais rapporter ca comme un bug de gutsy alors...

n°993777
black_lord
Modérateur
Truth speaks from peacefulness
Posté le 21-12-2007 à 09:59:28  profilanswer
 

[:mikala]
 


[nico@angband:~] ll
total 136
drwxr-xr-x  5 nico nico  4096 2006-10-13 13:06 3G
drwxr-xr-x 13 nico nico  4096 2007-10-26 18:11 codaz
drwxr-xr-x  4 nico nico  4096 2007-12-20 06:07 Desktop
drwxr-xr-x 10 nico nico  4096 2007-12-21 09:56 divers
drwxr-xr-x  5 nico nico  4096 2007-11-14 14:15 elements
drwxr-xr-x 10 nico nico  4096 2007-12-10 18:55 gaelle
-rw-r--r--  1 nico nico    55 2007-12-21 09:55 Makefile
-rw-r--r--  1 nico nico 44948 2007-12-18 14:31 memtest86+-1.70.iso
drwxr-xr-x  4 nico nico  4096 2007-10-11 18:25 Photos
drwxr-xr-x  2 nico nico  4096 2007-12-08 12:13 scripts
drwxr-xr-x 11 nico nico  4096 2007-10-29 17:55 sysadmin
drwxr-xr-x  9 nico nico  4096 2007-10-24 20:27 tmp
-rw-r--r--  1 nico nico 48947 2007-12-11 20:49 yaifo-0.5-42.tgz
[nico@angband:~] cat Makefile  
gruik:
        @for i in *; do \
                /bin/echo -e bla; \
        done  
[nico@angband:~] make gruik
bla
bla
bla
bla
bla
bla
bla
bla
bla
bla
bla
bla
bla
[nico@angband:~] vi Makefile  
[nico@angband:~] cat Makefile  
gruik:
        @for i in *; do \
                echo -e bla; \
        done  
[nico@angband:~] make gruik  
-e bla
-e bla
-e bla
-e bla
-e bla
-e bla
-e bla
-e bla
-e bla
-e bla
-e bla
-e bla
-e bla
[nico@angband:~] vi Makefile  
[nico@angband:~] cat Makefile  
gruik:
        @for i in *; do \
                echo -e bla ${SHELL}; \
        done  
[nico@angband:~] make gruik  
-e bla /bin/sh
-e bla /bin/sh
-e bla /bin/sh
-e bla /bin/sh
-e bla /bin/sh
-e bla /bin/sh
-e bla /bin/sh
-e bla /bin/sh
-e bla /bin/sh
-e bla /bin/sh
-e bla /bin/sh
-e bla /bin/sh
-e bla /bin/sh
[nico@angband:~] vi Makefile
[nico@angband:~] cat Makefile
gruik:
        @for i in *; do \
                /bin/echo -e bla ${SHELL}; \
        done[nico@angband:~] make gruik  
bla /bin/sh
bla /bin/sh
bla /bin/sh
bla /bin/sh
bla /bin/sh
bla /bin/sh
bla /bin/sh
bla /bin/sh
bla /bin/sh
bla /bin/sh
bla /bin/sh
bla /bin/sh
bla /bin/sh
[nico@angband:~] vi Makefile  
[nico@angband:~] cat Makefile  
gruik:
        @for i in *; do \
                /bin/echo -e bla `which echo`; \
        done  
[nico@angband:~] make gruik  
bla /bin/echo
bla /bin/echo
bla /bin/echo
bla /bin/echo
bla /bin/echo
bla /bin/echo
bla /bin/echo
bla /bin/echo
bla /bin/echo
bla /bin/echo
bla /bin/echo[nico@angband:~] vi Makefile  
[nico@angband:~] cat Makefile
gruik:
        @for i in *; do \
                echo -e bla `which echo`; \
        done  
[nico@angband:~] make gruik  
-e bla /bin/echo
-e bla /bin/echo
-e bla /bin/echo
-e bla /bin/echo
-e bla /bin/echo
-e bla /bin/echo
-e bla /bin/echo
-e bla /bin/echo
-e bla /bin/echo
-e bla /bin/echo
-e bla /bin/echo
-e bla /bin/echo
-e bla /bin/echo


 
[:pingouino]
 
du coup c'est o'gure qui a le droit de te TT :(
 
bla /bin/echo
bla /bin/echo
 


---------------
uptime is for lousy system administrators what Viagra is for impotent people - mes unixeries - github me
n°993784
wedgeant
Da penguin inside
Posté le 21-12-2007 à 10:09:11  profilanswer
 

Mauvaise distro, changer distro :o
 
Et je ne ferais pas l'objet d'un pari, bande d'huitres desséchées :o


---------------
Wedge#2487 @HS -#- PW: +∞ -#- Khaz-Modan/Boltiz @WoW
n°993970
M300A
Posté le 21-12-2007 à 15:37:17  profilanswer
 

Heuu au pif.
 
echo -e = pas Posix = bashism
 
ubuntu sh = dash =! bash ?

n°993977
wedgeant
Da penguin inside
Posté le 21-12-2007 à 15:50:10  profilanswer
 

M300A a écrit :

Heuu au pif.
 
echo -e = pas Posix = bashism
 
ubuntu sh = dash =! bash ?


[:tinostar]
 
Pas 2 en 1 ce coup ci [:cupra]


---------------
Wedge#2487 @HS -#- PW: +∞ -#- Khaz-Modan/Boltiz @WoW
n°994022
black_lord
Modérateur
Truth speaks from peacefulness
Posté le 21-12-2007 à 18:54:19  profilanswer
 

M300A a écrit :

Heuu au pif.
 
echo -e = pas Posix = bashism
 
ubuntu sh = dash =! bash ?


 
le echo -e passe sur bsd.


---------------
uptime is for lousy system administrators what Viagra is for impotent people - mes unixeries - github me
n°994043
Cytoplasm
Posté le 21-12-2007 à 22:03:20  profilanswer
 

Mais le pire c'est pas que le echo -e ne passe pas, c'est qu'il passe de temps en temps! C'est ca le bug en verite.

mood
Publicité
Posté le   profilanswer
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Linux et OS Alternatifs
  Codes et scripts

  Gutsy: bug "echo -e" dans une boucle for d'un Makefile

 

Sujets relatifs
kubuntu Gutsy et AudioUbuntu 7.10 (Gutsy) : License could not be presented (réinstallation)
Kubuntu Gutsy, openoffice 2.3 et DicOOo [RESOLU]de feisty à gutsy
[resolu] Probleme avec apt-get Ubuntu 7.10 Gutsy GibbonChipset wifi Intel 4965AGN sous ubuntu gutsy
[RESOLU] besoin aide script shell (pb sur boucle while)Première boucle
mail qui boucleshell, boucle for et cat d'un fichier
Plus de sujets relatifs à : Gutsy: bug "echo -e" dans une boucle for d'un Makefile


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR