Hello à tous, J'aimerais mettre des arguments dans une variable et les passer à une commande ex: A="a b c" bash -c "echo \$#" $A Seulement dans cet exemple j'obtient 2 c'est à dire que tout le contenu de A est envoyé dans le même paramètre. J'aimerais que A soit substitué pour envoyer 3 paramètres au lieu de 1. Florent,
On 2006-01-23 16:24:22 +0100, Florent Guiliani wrote:
Hello à tous,
J'aimerais mettre des arguments dans une variable et les passer à une commande ex:
A="a b c" bash -c "echo \$#" $A
Seulement dans cet exemple j'obtient 2 c'est à dire que tout le contenu de A est envoyé dans le même paramètre.
Non, les paramètres 0, 1 et 2 sont envoyés, ça fait 3. Essaie avec A="a b c d" par exemple. En quotant le $A comme ceci "$A", tu obtiens bien 0 (1 seul paramètre). Sinon, je trouve que l'utilisation de tableaux avec zsh est préférable: cela permet de passer de manière fiable des arguments avec des espaces. -- Vincent Lefèvre <vincent@vinc17.org> - Web: <http://www.vinc17.org/> 100% accessible validated (X)HTML - Blog: <http://www.vinc17.org/blog/> Work: CR INRIA - computer arithmetic / SPACES project at LORIA
Vincent Lefevre a écrit :
Non, les paramètres 0, 1 et 2 sont envoyés, ça fait 3. Essaie avec A="a b c d" par exemple.
merci, mon erreur doit donc être ailleur.... Je viens de trouver l'erreur, je n'ai pas encore trouvé la solution. Voici le script en simplifié: REGEXP=` grep "^debut" fichier | while read DEBUT FIN; do echo -n "-e \"s/$FIN/lafin/g\" " ; done ` sed -i $REGEXP *.cpp le problème c'est que echo interprète le -e et du coût ne l'affiche pas :( et donc sed me dit que " n'est pas une commande :(
Florent Guiliani a écrit :
REGEXP=` grep "^debut" fichier | while read DEBUT FIN; do echo -n "-e \"s/$FIN/lafin/g\" " ; done ` sed -i $REGEXP *.cpp
le problème c'est que echo interprète le -e et du coût ne l'affiche pas :( et donc sed me dit que " n'est pas une commande :(
echo -n " " "-e toto" semble corriger le problème lorsque je le tape sur la ligne de commande pourtant lorsqu'il est exécuté sous cygwin dans un malefile j'ai toujours le problème du -e qui est "absorbé" comme option. Florent G.,
Florent Guiliani a écrit :
echo -n " " "-e toto"
semble corriger le problème lorsque je le tape sur la ligne de commande pourtant lorsqu'il est exécuté sous cygwin dans un malefile j'ai toujours le problème du -e qui est "absorbé" comme option. autant pour moi echo " " "-e blabla" corrige bien le problème. je suis fatigué aujourd'hui.....
Florent G.,
Florent Guiliani a écrit :
Florent Guiliani a écrit :
echo -n " " "-e toto"
semble corriger le problème lorsque je le tape sur la ligne de commande pourtant lorsqu'il est exécuté sous cygwin dans un malefile j'ai toujours le problème du -e qui est "absorbé" comme option.
autant pour moi echo " " "-e blabla" corrige bien le problème.
Concept ultra-important en informatique: on écrit "au temps pour moi" (pas "autant") </mode pivot=off>
je suis fatigué aujourd'hui.....
ouahé l'autr'hé, l'excuse.. :-)
Florent G.,
_______________________________________________ Shell mailing list Shell@lists.asyd.net http://lists.asyd.net/mailman/listinfo.cgi/shell
Concept ultra-important en informatique: on écrit "au temps pour moi"
add message couche(http://www.langue-fr.net/faq/faq.htm#au_temps)
On 2006-01-23 17:19:36 +0100, Florent Guiliani wrote:
Florent Guiliani a écrit :
echo -n " " "-e toto"
semble corriger le problème lorsque je le tape sur la ligne de commande pourtant lorsqu'il est exécuté sous cygwin dans un malefile j'ai toujours le problème du -e qui est "absorbé" comme option. autant pour moi echo " " "-e blabla" corrige bien le problème. je suis fatigué aujourd'hui.....
echo "-e toto" fonctionne chez moi (avec n'importe quel echo). Évidemment, il faut mettre les quotes ppour que ça ne soit pas reconnu comme une option. Sinon, sur les systèmes modernes, il est préférable d'utiliser printf. -- Vincent Lefèvre <vincent@vinc17.org> - Web: <http://www.vinc17.org/> 100% accessible validated (X)HTML - Blog: <http://www.vinc17.org/blog/> Work: CR INRIA - computer arithmetic / SPACES project at LORIA
participants (4)
-
Florent Guiliani
-
Marc Chantreux
-
Philippe Jacquot
-
Vincent Lefevre