Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 22/10/2008, à 05:28

Drusselnahg

[Make] echo -e fais des misères

Bonjour , je souhaite pouvoir générer des  petits fichiers texte (et source) avec Make.

La commande que j'utilisais pour cela dans un makefile sur d'autres distribs (Redhat, Gentoo) était la suivante:


regleX:
{tab}echo -e "\t commandeX" >> monFichier

J'ai voulu tester ceci sur une distribution Ubuntu, mais à ma surprise, quand j'ouvre monFichier, je vois:
"-e commandeX" ;  l'option -e n'est pas prise comme une option mais comme du texte à afficher.


Ne maitrisant pas tout à fait Make, je souhaiterais savoir s'il y a un moyen de savoir quel shell est utilisé à chaque ligne de commande (ou si echo est interprété par Make : quand je tape echo -e dans `$SHELL`  qui est un bon bash ceci marche correctement)

#2 Le 22/10/2008, à 09:24

Drusselnahg

Re : [Make] echo -e fais des misères

Problème à priori résolu, make devait intercepter les echo pour fair je ne sais quelle blackmagic.

Je vais tout remplacer par `which echo` c'est crade mais je ne vois que ça pour le moment

#3 Le 22/10/2008, à 09:35

®om

Re : [Make] echo -e fais des misères

La différence vient du fait que bash et sh n'utilisent pas le même echo :

sh -c "echo -e 'ça va?\nbien'"
bash -c "echo -e 'ça va?\nbien'"

Pour éviter tout problème, il ne faut jamais utiliser echo dans les scripts, mais printf :

printf '%s\n%s\n' 'ça va?' 'bien'

Hors ligne

#4 Le 22/10/2008, à 10:00

kordan

Re : [Make] echo -e fais des misères

C'est surtout une différence entre bash et dash (ce qui vaut pour ubuntu ne vaut pas pour toutes les distributions)

printf existe peut-être en dash, mais à ma connaissance il ne fait pas partie du bourne shell.

#5 Le 22/10/2008, à 10:01

®om

Re : [Make] echo -e fais des misères

Si, printf fonctionne partout, et de la même manière smile

Hors ligne

#6 Le 22/10/2008, à 10:10

kordan

Re : [Make] echo -e fais des misères

Apparemment non :
Major Differences From The Bourne Shell
http://www.faqs.org/docs/bashman/bashref_122.html

The printf builtin is available to display formatted output (see section 4.2 Bash Builtin Commands).

Ce ne serait donc pas une commande intégrée du bourne shell (contrairement à bash et dash)