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

Re: [bash] expansion de variable avec double quote




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 ...





Reply to: