Re: [bash] expansion de variable avec double quote
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 ...
Reply to: