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

Gutsy: bug "echo -e" dans une boucle for d'un Makefile - Codes et scripts - Linux et OS Alternatifs

Marsh Posté le 20-12-2007 à 12:07:58    

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!

Reply

Marsh Posté le 20-12-2007 à 12:07:58   

Reply

Marsh Posté le 20-12-2007 à 12:10:27    

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

Reply

Marsh Posté le 20-12-2007 à 13:09:47    

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
Reply

Marsh Posté le 20-12-2007 à 13:18:08    

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

Reply

Marsh Posté le 20-12-2007 à 13:20:16    

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
Reply

Marsh Posté le 20-12-2007 à 13:22:36    

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


Reply

Marsh Posté le 20-12-2007 à 13:23:53    

Ma qué backslash ? [:cerveau kneu]


---------------
Wedge#2487 @HS -#- PW: +∞ -#- Khaz-Modan/Boltiz @WoW
Reply

Marsh Posté le 20-12-2007 à 13:25:48    

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...

Reply

Marsh Posté le 20-12-2007 à 13:28:17    

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
Reply

Marsh Posté le 20-12-2007 à 13:28:52    

[: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
Reply

Marsh Posté le 20-12-2007 à 13:28:52   

Reply

Marsh Posté le 20-12-2007 à 13:34:11    

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.

Reply

Marsh Posté le 20-12-2007 à 13:35:20    

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 !
Reply

Marsh Posté le 20-12-2007 à 13:48:43    

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
Reply

Marsh Posté le 20-12-2007 à 13:57:37    

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 !?

Reply

Marsh Posté le 20-12-2007 à 14:05:45    

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

Reply

Marsh Posté le 20-12-2007 à 14:07:13    

Tenu :o


---------------
Relax. Take a deep breath !
Reply

Marsh Posté le 21-12-2007 à 08:25:03    

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
Reply

Marsh Posté le 21-12-2007 à 09:40:52    

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

Reply

Marsh Posté le 21-12-2007 à 09:59:28    

[: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
Reply

Marsh Posté le 21-12-2007 à 10:09:11    

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
Reply

Marsh Posté le 21-12-2007 à 15:37:17    

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

Reply

Marsh Posté le 21-12-2007 à 15:50:10    

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
Reply

Marsh Posté le 21-12-2007 à 18:54:19    

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
Reply

Marsh Posté le 21-12-2007 à 22:03:20    

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.

Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed