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

Re: [bash] expansion de variable avec double quote




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


Reply to: