[bash] expansion de variable avec double quote

2009-01-06 Thread hd


Bonjour,

Je rencontre un problème avec l'expansion des variables sous bash

J'utilise un script (que je ne peux modifier car il fait partie d'un 
package tiers) qui lance un ./configure en lui passant des paramamètres 
additionnels via une variable MY_ARGS


le script est quelque chose comme :

#!/bin/sh

./configure ${MY_ARGS}
...

et je le lance avec la commande :
MY_ARGS='--enable-truc CFLAGS="-g3 -O0"' ./script.sh

je m'attends à ce qu'il soit interprété comme :
   ./configure --enable-truc CFLAGS="-g3 -O0"

mais bash le transforme en :
   ./configure --enable-truc 'CFLAGS="-g3' '-O0"'
ce qui fait 3 paramètres pour "./configure" au lieu de 2
et évidemment ./configure sort en erreur en indiquant qu'il ne comprend 
pas le paramètre -O0


Pourriez vous m'indiquer la bonne syntaxe pour que bash fasse ... ce que 
je voudrais qu'il fasse


merci


--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/DebFrFrenchLists
Vous pouvez aussi ajouter le mot ``spam'' dans vos champs "From" et
"Reply-To:"

To UNSUBSCRIBE, email to debian-user-french-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org



Re: [bash] expansion de variable avec double quote

2009-01-06 Thread Régis Grison

hd a écrit :


Bonjour,

Je rencontre un problème avec l'expansion des variables sous bash

[...]
et je le lance avec la commande :
MY_ARGS='--enable-truc CFLAGS="-g3 -O0"' ./script.sh

je m'attends à ce qu'il soit interprété comme :
   ./configure --enable-truc CFLAGS="-g3 -O0"

mais bash le transforme en :
   ./configure --enable-truc 'CFLAGS="-g3' '-O0"'
[...]


Là comme ça, je serais tenté de complètement contourner le problème :
dans le shell :
export CFLAGS="-g3 -O0"

ensuite tu peux lancer ton script avec dans la variable MY_ARGS :
MY_ARGS="--enable-truc ./script.sh"

Sinon, un truc auquel on ne pense pas toujours c'est l'argument -- qui
permet de séparer les arguments d'un appli des arguments de l'appli
passée en paramètres. Mais je pense que la solution est au dessus.

Régis.

--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/DebFrFrenchLists
Vous pouvez aussi ajouter le mot ``spam'' dans vos champs "From" et
"Reply-To:"

To UNSUBSCRIBE, email to debian-user-french-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org



Re: [bash] expansion de variable avec double quote

2009-01-06 Thread hd


Régis Grison a écrit :


hd a écrit :


Bonjour,

Je rencontre un problème avec l'expansion des variables sous bash

[...]
et je le lance avec la commande :
MY_ARGS='--enable-truc CFLAGS="-g3 -O0"' ./script.sh

je m'attends à ce qu'il soit interprété comme :
   ./configure --enable-truc CFLAGS="-g3 -O0"

mais bash le transforme en :
   ./configure --enable-truc 'CFLAGS="-g3' '-O0"'
[...]


Là comme ça, je serais tenté de complètement contourner le problème :
dans le shell :
export CFLAGS="-g3 -O0"
oui mais le pb est que le "script.sh" bidouille lui-même le CFLAGS. Donc 
mon CFLAGS déclaré en externe (via export) sera détruit entre temps


ensuite tu peux lancer ton script avec dans la variable MY_ARGS :
MY_ARGS="--enable-truc ./script.sh"

je suppose que tu voulais dire
   MY_ARGS="--enable-truc" ./script.sh


Sinon, un truc auquel on ne pense pas toujours c'est l'argument -- qui 
permet de séparer les arguments d'un appli des arguments de l'appli 
passée en paramètres. Mais je pense que la solution est au dessus.

il me semble avoir déjà vu ça avec 'startx'
   startx 'client param' -- 'server param'
mais dans ce cas, c'est 'startx' qui gère le '--' (qui le parse)
le '--' n'a pas de signification particulière pour bash à ma connaissance
est ce de cela dont tu veux parler ou évoques tu autre chose ?



Régis.


merci

--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/DebFrFrenchLists
Vous pouvez aussi ajouter le mot ``spam'' dans vos champs "From" et
"Reply-To:"

To UNSUBSCRIBE, email to debian-user-french-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org



Re: [bash] expansion de variable avec double quote

2009-01-06 Thread Romaric DEFAUX


hd a écrit :


Bonjour,

Je rencontre un problème avec l'expansion des variables sous bash

J'utilise un script (que je ne peux modifier car il fait partie d'un 
package tiers) qui lance un ./configure en lui passant des 
paramamètres additionnels via une variable MY_ARGS


le script est quelque chose comme :

#!/bin/sh

./configure ${MY_ARGS}
...

et je le lance avec la commande :
MY_ARGS='--enable-truc CFLAGS="-g3 -O0"' ./script.sh

je m'attends à ce qu'il soit interprété comme :
   ./configure --enable-truc CFLAGS="-g3 -O0"

mais bash le transforme en :
   ./configure --enable-truc 'CFLAGS="-g3' '-O0"'
ce qui fait 3 paramètres pour "./configure" au lieu de 2
et évidemment ./configure sort en erreur en indiquant qu'il ne 
comprend pas le paramètre -O0


Pourriez vous m'indiquer la bonne syntaxe pour que bash fasse ... ce 
que je voudrais qu'il fasse


merci



Bonjour,

As-tu déjà essayé de protégé les double quote par \ ?
MY_ARGS='--enable-truc CFLAGS=\"-g3 -O0\"' ./script.sh

--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/DebFrFrenchLists
Vous pouvez aussi ajouter le mot ``spam'' dans vos champs "From" et
"Reply-To:"

To UNSUBSCRIBE, email to debian-user-french-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org



Re: [bash] expansion de variable avec double quote

2009-01-06 Thread Régis Grison

hd a écrit :


Régis Grison a écrit :


hd a écrit :


Bonjour,

Je rencontre un problème avec l'expansion des variables sous bash

[...]
et je le lance avec la commande :
MY_ARGS='--enable-truc CFLAGS="-g3 -O0"' ./script.sh

je m'attends à ce qu'il soit interprété comme :
   ./configure --enable-truc CFLAGS="-g3 -O0"

mais bash le transforme en :
   ./configure --enable-truc 'CFLAGS="-g3' '-O0"'
[...]


Là comme ça, je serais tenté de complètement contourner le problème :
dans le shell :
export CFLAGS="-g3 -O0"
oui mais le pb est que le "script.sh" bidouille lui-même le CFLAGS. 
Donc mon CFLAGS déclaré en externe (via export) sera détruit entre temps
Heu... si script.sh bidouille le CFLAGS, je ne suis pas sûr que le 
passer comme tu veux le faire marche mieux, si ?




ensuite tu peux lancer ton script avec dans la variable MY_ARGS :
MY_ARGS="--enable-truc ./script.sh"

je suppose que tu voulais dire
   MY_ARGS="--enable-truc" ./script.sh
Là je suis un peu paumé, si tu mets des "" juste autour d'un argument, 
ne pas en mettre du tout ferait la même chose, non ?


Sinon, un truc auquel on ne pense pas toujours c'est l'argument -- 
qui permet de séparer les arguments d'un appli des arguments de 
l'appli passée en paramètres. Mais je pense que la solution est au 
dessus.

il me semble avoir déjà vu ça avec 'startx'
   startx 'client param' -- 'server param'
mais dans ce cas, c'est 'startx' qui gère le '--' (qui le parse)
le '--' n'a pas de signification particulière pour bash à ma connaissance
est ce de cela dont tu veux parler ou évoques tu autre chose ?
Je veux bien parler de ça mais il me semble que c'est géré au niveau du 
shell :

r...@merlin:~$ echo  -n test
tes...@merlin:~$ echo -- -n test
-- -n test
r...@merlin:~$

Ceci dit, je ne penses toujours pas que ça soit la solution. La 
proposition de Romaric DEFAUX de mettre des \" me semble beaucoup plus 
intéressante.


Régis.

--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/DebFrFrenchLists
Vous pouvez aussi ajouter le mot ``spam'' dans vos champs "From" et
"Reply-To:"

To UNSUBSCRIBE, email to debian-user-french-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org



Re: [bash] expansion de variable avec double quote

2009-01-06 Thread hd


Romaric DEFAUX a écrit :



hd a écrit :


Bonjour,

Je rencontre un problème avec l'expansion des variables sous bash

J'utilise un script (que je ne peux modifier car il fait partie d'un 
package tiers) qui lance un ./configure en lui passant des 
paramamètres additionnels via une variable MY_ARGS


le script est quelque chose comme :

#!/bin/sh

./configure ${MY_ARGS}
...

et je le lance avec la commande :
MY_ARGS='--enable-truc CFLAGS="-g3 -O0"' ./script.sh

je m'attends à ce qu'il soit interprété comme :
   ./configure --enable-truc CFLAGS="-g3 -O0"

mais bash le transforme en :
   ./configure --enable-truc 'CFLAGS="-g3' '-O0"'
ce qui fait 3 paramètres pour "./configure" au lieu de 2
et évidemment ./configure sort en erreur en indiquant qu'il ne 
comprend pas le paramètre -O0


Pourriez vous m'indiquer la bonne syntaxe pour que bash fasse ... ce 
que je voudrais qu'il fasse


merci



Bonjour,

As-tu déjà essayé de protégé les double quote par \ ?
MY_ARGS='--enable-truc CFLAGS=\"-g3 -O0\"' ./script.sh
ben oui ... et dans ce cas il le protège tellement que le '\' est aussi 
passé en param

   MY_ARGS='--enable-truc CFLAGS=\"-g3 -O0\"' ./script.sh
se transforme en
   ./configure --enable-truc 'CFLAGS=\"-g3' '-O0\"'   


donc ce n'est pas bon ...




--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/DebFrFrenchLists
Vous pouvez aussi ajouter le mot ``spam'' dans vos champs "From" et
"Reply-To:"

To UNSUBSCRIBE, email to debian-user-french-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org



Re: [bash] expansion de variable avec double quote

2009-01-06 Thread hd


[...]


Là comme ça, je serais tenté de complètement contourner le problème :
dans le shell :
export CFLAGS="-g3 -O0"
oui mais le pb est que le "script.sh" bidouille lui-même le CFLAGS. 
Donc mon CFLAGS déclaré en externe (via export) sera détruit entre temps
Heu... si script.sh bidouille le CFLAGS, je ne suis pas sûr que le 
passer comme tu veux le faire marche mieux, si ?

dans le cript, il y a
...
CFLAGS=
./configure ${MY_ARGS}
...

donc le CFLAGS défini via MY_ARGS est protégé (il "passe par dessus" en 
quelque sorte)




ensuite tu peux lancer ton script avec dans la variable MY_ARGS :
MY_ARGS="--enable-truc ./script.sh"

je suppose que tu voulais dire
   MY_ARGS="--enable-truc" ./script.sh
Là je suis un peu paumé, si tu mets des "" juste autour d'un argument, 
ne pas en mettre du tout ferait la même chose, non ?
si mais ce n'est pas ce que tu avais écrit, c'est pour cela que je 
posais la question


[...]

Je veux bien parler de ça mais il me semble que c'est géré au niveau 
du shell :

r...@merlin:~$ echo  -n test
tes...@merlin:~$ echo -- -n test
-- -n test
r...@merlin:~$
effectivement en relisant le 'man bash', l'option '--' est géré 
directement par bash, je ne l'avais pas compris

ceci dit j'ai essayé (sans trop comprendre)
   MY_ARGS='--enable-truc -- CFLAGS=-g3 -O0' ./script.sh
et
   MY_ARGS='--enable-truc -- "CFLAGS=-g3 -O0"' ./script.sh
sans succès, bash considère -O0 toujours que c'est un paramètre indépendant



Ceci dit, je ne penses toujours pas que ça soit la solution. La 
proposition de Romaric DEFAUX de mettre des \" me semble beaucoup plus 
intéressante.

elle ne fonctionne malheureusement pas


--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/DebFrFrenchLists
Vous pouvez aussi ajouter le mot ``spam'' dans vos champs "From" et
"Reply-To:"

To UNSUBSCRIBE, email to debian-user-french-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org



Re: [bash] expansion de variable avec double quote

2009-01-06 Thread Romaric DEFAUX

hd a écrit :


Romaric DEFAUX a écrit :



hd a écrit :


Bonjour,

Je rencontre un problème avec l'expansion des variables sous bash

J'utilise un script (que je ne peux modifier car il fait partie d'un 
package tiers) qui lance un ./configure en lui passant des 
paramamètres additionnels via une variable MY_ARGS


le script est quelque chose comme :

#!/bin/sh

./configure ${MY_ARGS}
...

et je le lance avec la commande :
MY_ARGS='--enable-truc CFLAGS="-g3 -O0"' ./script.sh

je m'attends à ce qu'il soit interprété comme :
   ./configure --enable-truc CFLAGS="-g3 -O0"

mais bash le transforme en :
   ./configure --enable-truc 'CFLAGS="-g3' '-O0"'
ce qui fait 3 paramètres pour "./configure" au lieu de 2
et évidemment ./configure sort en erreur en indiquant qu'il ne 
comprend pas le paramètre -O0


Pourriez vous m'indiquer la bonne syntaxe pour que bash fasse ... ce 
que je voudrais qu'il fasse


merci



Bonjour,

As-tu déjà essayé de protégé les double quote par \ ?
MY_ARGS='--enable-truc CFLAGS=\"-g3 -O0\"' ./script.sh
ben oui ... et dans ce cas il le protège tellement que le '\' est 
aussi passé en param

   MY_ARGS='--enable-truc CFLAGS=\"-g3 -O0\"' ./script.sh
se transforme en
   ./configure --enable-truc 'CFLAGS=\"-g3' '-O0\"'  
donc ce n'est pas bon ...


J'ai l'impression que c'est l'espace entre -g3 et -00 qui pose problème. 
Il considèrerait que MY_ARGS contient une suite d'arguments séparés par 
des espaces. Et si tu protèges l'espace ça fait quoi ?
Tu pourrais nous montrer les parties de script.sh qui traite MY_ARGS et 
CFLAGS ? Il y a peut-être un bug...



--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/DebFrFrenchLists
Vous pouvez aussi ajouter le mot ``spam'' dans vos champs "From" et
"Reply-To:"

To UNSUBSCRIBE, email to debian-user-french-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org



Re: [bash] expansion de variable avec double quote

2009-01-06 Thread Guy Roussin


Pourriez vous m'indiquer la bonne syntaxe pour que bash fasse ... ce 
que je voudrais qu'il fasse



et

MY_ARGS="--enable-truc CFLAGS=\"-g3 -O0\"" ./script.sh

ça le fait ?

--
Guy

--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/DebFrFrenchLists
Vous pouvez aussi ajouter le mot ``spam'' dans vos champs "From" et
"Reply-To:"

To UNSUBSCRIBE, email to debian-user-french-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org



Re: [bash] expansion de variable avec double quote

2009-01-06 Thread hd


Guy Roussin a écrit :



Pourriez vous m'indiquer la bonne syntaxe pour que bash fasse ... ce 
que je voudrais qu'il fasse



et

MY_ARGS="--enable-truc CFLAGS=\"-g3 -O0\"" ./script.sh

ça le fait ?


ben non, bash me transforme cela en
   ./configure --enable-truc 'CFLAGS="-g3' '-O0"'



--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/DebFrFrenchLists
Vous pouvez aussi ajouter le mot ``spam'' dans vos champs "From" et
"Reply-To:"

To UNSUBSCRIBE, email to debian-user-french-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org



Re: [bash] expansion de variable avec double quote

2009-01-06 Thread hd


Romaric DEFAUX a écrit :
[...]

J'ai l'impression que c'est l'espace entre -g3 et -00 qui pose 
problème. Il considèrerait que MY_ARGS contient une suite d'arguments 
séparés par des espaces. Et si tu protèges l'espace ça fait quoi ?
Tu pourrais nous montrer les parties de script.sh qui traite MY_ARGS 
et CFLAGS ? Il y a peut-être un bug...
ce script permet normalement de lancer les outils autotools puis le 
"configure" avec des options prédéfinis (path pour les bins, libs ...)
il utilise une variable MY_ARGS qui permet de surcharger les options de 
'l'extérieur' du script sans avoir à le modifier
dans mon cas, je veux compiler en debug et donc ajouter les options 
'--enable-debug CFLAGS="-g3 -O0"'
si je suis obliger de modifier le script pour cela, la variable MY_VARS 
ne sert plus à rien ...

voici un raccourci du script

$ cat script.sh
#!/bin/sh

mylog() {
   echo "$...@}"
   "$...@}"
   return $?
}

myconf() {
   # ...
   # differentes chose comme autoreconf ...
   # ...
   mylog "./configure" "$...@}" ${MY_ARGS}
   # ...
}
myconf --sbindir=/usr/sbin

et voici une trace :

$ MY_ARGS='--enable-debug CFLAGS="-g3 -O0"' bash -xv script.sh
#!/bin/sh

mylog() {
   echo "$...@}"
   "$...@}"
   return $?
}

myconf() {
   # ...
   # différentes chose comme autoreconf ...
   # ...
   mylog "./configure" "$...@}" ${MY_ARGS}
   # ...
}

myconf --sbindir=/usr/sbin
+ myconf --sbindir=/usr/sbin
+ mylog ./configure --sbindir=/usr/sbin --enable-debug 'CFLAGS="-g3' '-O0"'
+ echo ./configure --sbindir=/usr/sbin --enable-debug 'CFLAGS="-g3' '-O0"'
./configure --sbindir=/usr/sbin --enable-debug CFLAGS="-g3 -O0"
+ ./configure --sbindir=/usr/sbin --enable-debug 'CFLAGS="-g3' '-O0"'
configure: error: unrecognized option: -O0"

Visiblement, l'espace entre -g3 et -O0 pose problème

Je vais me replonger dans la doc de bash ...



--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/DebFrFrenchLists
Vous pouvez aussi ajouter le mot ``spam'' dans vos champs "From" et
"Reply-To:"

To UNSUBSCRIBE, email to debian-user-french-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org



Re: [bash] expansion de variable avec double quote

2009-01-06 Thread Jacques L'helgoualc'h
hd a écrit, mardi 6 janvier 2009, à 14:51 :
> [...]

Bonjour,


> $ MY_ARGS='--enable-debug CFLAGS="-g3 -O0"' bash -xv script.sh
> #!/bin/sh

Plutôt « sh -xv », non ? Ton problème tient sans doute à l'ordre suivant
lequel le shell effectue ses évaluations --- tu pourrais demander sur
news:fr.comp.os.unix...

Pour contourner le problème, essaie

 sh -vx <(sed -e '/\${MY_ARGS}/ s//--enable-truc CFLAGS="-g3 -O0"/g' script.sh)

 ?

-- 
Jacques L'helgoualc'h

-- 
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/DebFrFrenchLists
Vous pouvez aussi ajouter le mot ``spam'' dans vos champs "From" et
"Reply-To:"

To UNSUBSCRIBE, email to debian-user-french-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org



Re: [bash] expansion de variable avec double quote

2009-01-07 Thread pmenier

hd a écrit :


Guy Roussin a écrit :



Pourriez vous m'indiquer la bonne syntaxe pour que bash fasse ... ce 
que je voudrais qu'il fasse



et

MY_ARGS="--enable-truc CFLAGS=\"-g3 -O0\"" ./script.sh

ça le fait ?


ben non, bash me transforme cela en
   ./configure --enable-truc 'CFLAGS="-g3' '-O0"'




Salut

Et si tu mets la valeur de MY_ARGS dans un fichier puis:

./configure $(cat le_fichier)

Pat

--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/DebFrFrenchLists
Vous pouvez aussi ajouter le mot ``spam'' dans vos champs "From" et
"Reply-To:"

To UNSUBSCRIBE, email to debian-user-french-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org



Re: [bash] expansion de variable avec double quote

2009-01-07 Thread Thomas Preud'homme
The Tuesday 06 January 2009 09:57:41 hd, you wrote :
> Bonjour,
>
> Je rencontre un problème avec l'expansion des variables sous bash
>
> J'utilise un script (que je ne peux modifier car il fait partie d'un
> package tiers) qui lance un ./configure en lui passant des paramamètres
> additionnels via une variable MY_ARGS
>
> le script est quelque chose comme :
>
> #!/bin/sh
> 
> ./configure ${MY_ARGS}
> ...
>
> et je le lance avec la commande :
> MY_ARGS='--enable-truc CFLAGS="-g3 -O0"' ./script.sh

En fait les ' sont retirer par le shell au moment de l'évaluation de la ligne.

Au final il mettra dans MY_ARGS : --enable-truc CFLAGS="-g3 -O0" ./script.sh

Ensuite quand tu appelles configure avec $MY_ARGS la variable est remplacée 
par sa signification (Cf ligne du dessus) et le découpage est fait suivant 
les espaces sauf pour les variables qui étaient entre quites.

Cf man bash : Expansion  is  performed  on  the  command  line after it has 
been split into words.  There are seven kinds of expansion performed: brace 
expansion, tilde expansion, parameter and variable expansion, command 
substitution, arithmetic expansion, word splitting, and pathname expansion.

Puis plus loin : 

The shell scans the results of parameter expansion, command substitution, and 
arithmetic expansion that did not occur within double quotes for word 
splitting.

Autrement dit les quotes ne sont interprétés que dans la ligne de commande, 
pas dans les variables. Toute quote dans une variable est considérée comme un 
caractère (c'est comme si la quote avait été échappée par le shell).

Si tu veux obtenir le résultat espéré tu vas devoir faire un eval : 

val [arg ...]
  The args are read and concatenated together into a single 
command.  This command is then read and executed by the shell, and its exit 
status  is  returned  as the value of eval.  If there are no args, or only 
null arguments, eval returns 0.

Ce qui dans ton cas donne : 

MY_ARGS='--enable-truc CFLAGS="-g3 -O0"' ./script.sh

puis

eval ./configure ${MY_ARGS}

>
> je m'attends à ce qu'il soit interprété comme :
> ./configure --enable-truc CFLAGS="-g3 -O0"
>
> mais bash le transforme en :
> ./configure --enable-truc 'CFLAGS="-g3' '-O0"'
> ce qui fait 3 paramètres pour "./configure" au lieu de 2
> et évidemment ./configure sort en erreur en indiquant qu'il ne comprend
> pas le paramètre -O0
>
> Pourriez vous m'indiquer la bonne syntaxe pour que bash fasse ... ce que
> je voudrais qu'il fasse
>
> merci


Cordialement,

Thomas Preud'homme

-- 
Why debian : http://www.debian.org/intro/why_debian


signature.asc
Description: This is a digitally signed message part.


Re: [bash] expansion de variable avec double quote

2009-01-07 Thread hd


[...]
Si tu veux obtenir le résultat espéré tu vas devoir faire un eval : 


val [arg ...]
  The args are read and concatenated together into a single 
command.  This command is then read and executed by the shell, and its exit 
status  is  returned  as the value of eval.  If there are no args, or only 
null arguments, eval returns 0.


Ce qui dans ton cas donne : 


MY_ARGS='--enable-truc CFLAGS="-g3 -O0"' ./script.sh

puis

eval ./configure ${MY_ARGS}
  

merci pour toutes ces explications.
mais comme rien n'est simple, le script.sh en question ne dépend pas de 
moi (fait par un tiers), je ne peux donc pas le modifier directement.
avec toutes les réponses à ce fil, j'en déduis qu'il n'y a pas de 
solution en ne jouant que sur la définition de la variable.

donc je vais demander des modif ... dans script.sh

merci pour tout


--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/DebFrFrenchLists
Vous pouvez aussi ajouter le mot ``spam'' dans vos champs "From" et
"Reply-To:"

To UNSUBSCRIBE, email to debian-user-french-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org



Re: [bash] expansion de variable avec double quote

2009-01-07 Thread Thomas Preud'homme
The Wednesday 07 January 2009 17:18:56 hd, you wrote :
> [...]
>
> > Si tu veux obtenir le résultat espéré tu vas devoir faire un eval :
> >
> > val [arg ...]
> >   The args are read and concatenated together into a single
> > command.  This command is then read and executed by the shell, and its
> > exit status  is  returned  as the value of eval.  If there are no args,
> > or only null arguments, eval returns 0.
> >
> > Ce qui dans ton cas donne :
> >
> > MY_ARGS='--enable-truc CFLAGS="-g3 -O0"' ./script.sh
> >
> > puis
> >
> > eval ./configure ${MY_ARGS}
>
> merci pour toutes ces explications.
> mais comme rien n'est simple, le script.sh en question ne dépend pas de
> moi (fait par un tiers), je ne peux donc pas le modifier directement.
> avec toutes les réponses à ce fil, j'en déduis qu'il n'y a pas de
> solution en ne jouant que sur la définition de la variable.
> donc je vais demander des modif ... dans script.sh
>
> merci pour tout


Pas besoin. Regarde ma solution, je n'ai pas parlé de modifier script.sh

Juste tu dois écrire eval ./configure ${MY_ARGS} au lieu de ./configure 
${MY_ARGS}

Cordialement,

Thomas Pred'homme
-- 
Why debian : http://www.debian.org/intro/why_debian


signature.asc
Description: This is a digitally signed message part.


Re: [bash] expansion de variable avec double quote

2009-01-07 Thread Arnaud Delobelle
2009/1/7 Thomas Preud'homme :
> Pas besoin. Regarde ma solution, je n'ai pas parlé de modifier script.sh
>
> Juste tu dois écrire eval ./configure ${MY_ARGS} au lieu de ./configure
> ${MY_ARGS}

Sauf que ./configure ${MY_ARGS} est dans le script...

-- 
Arnaud

--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/DebFrFrenchLists
Vous pouvez aussi ajouter le mot ``spam'' dans vos champs "From" et
"Reply-To:"

To UNSUBSCRIBE, email to debian-user-french-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org



Re: [bash] expansion de variable avec double quote

2009-01-07 Thread Thomas Preud'homme
The Wednesday 07 January 2009 21:29:16 Arnaud Delobelle, you wrote :
> 2009/1/7 Thomas Preud'homme :
> > Pas besoin. Regarde ma solution, je n'ai pas parlé de modifier script.sh
> >
> > Juste tu dois écrire eval ./configure ${MY_ARGS} au lieu de ./configure
> > ${MY_ARGS}
>
> Sauf que ./configure ${MY_ARGS} est dans le script...
>
> --
> Arnaud


Ah oui en effet. Je vois pas comment faire d'autres alors.

Cordialement,

Thomas Preud'homme

-- 
Why debian : http://www.debian.org/intro/why_debian


signature.asc
Description: This is a digitally signed message part.


Re: [bash] expansion de variable avec double quote

2009-01-07 Thread François TOURDE
Le 14251ième jour après Epoch,
Thomas Preud'homme écrivait:

> The Wednesday 07 January 2009 21:29:16 Arnaud Delobelle, you wrote :
>> 2009/1/7 Thomas Preud'homme :
>> > Pas besoin. Regarde ma solution, je n'ai pas parlé de modifier script.sh
>> >
>> > Juste tu dois écrire eval ./configure ${MY_ARGS} au lieu de ./configure
>> > ${MY_ARGS}
>>
>> Sauf que ./configure ${MY_ARGS} est dans le script...
>>
>> --
>> Arnaud
>
>
> Ah oui en effet. Je vois pas comment faire d'autres alors.

Dans ce cas, et si seule la commande "configure" est sujette à
MY_ARGS, il faut:

1) renommer le configure en configure.real
2) créer un script "configure" qui fait un "eval ./configure.real $@"
3) lancer MY_ARGS='--whatever CFLAGS="-gX -oY"' ./script.sh

ça devrait le faire, mais j'ai pas testé 


pgpcLzX2PBr04.pgp
Description: PGP signature