[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

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: