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"'
[...]
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"'
[...]
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"'
[...]
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.
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.
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.
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,
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,
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
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 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 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 ?
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
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
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
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 ?
Je veux bien parler de ça mais il me semble que c'est géré au niveau
du shell :
:~$ echo -n test
:~$ echo -- -n test
-- -n test
:~$
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.
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 ?
Je veux bien parler de ça mais il me semble que c'est géré au niveau
du shell :
rg@merlin:~$ echo -n test
testrg@merlin:~$ echo -- -n test
-- -n test
rg@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.
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 ?
Je veux bien parler de ça mais il me semble que c'est géré au niveau
du shell :
:~$ echo -n test
:~$ echo -- -n test
-- -n test
:~$
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.
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 ...
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 ...
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 ...
> Pourriez vous m'indiquer la bonne syntaxe pour que bash fasse ... ce
que je voudrais qu'il fasse
> Pourriez vous m'indiquer la bonne syntaxe pour que bash fasse ... ce
que je voudrais qu'il fasse
> Pourriez vous m'indiquer la bonne syntaxe pour que bash fasse ... ce
que je voudrais qu'il fasse
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 ?
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 ?
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 ?
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...
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...
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...