Passage du caractère * en parametre [SHELL SH/BASH] - Shell/Batch - Programmation
Marsh Posté le 11-06-2007 à 20:46:06
Le problème n'est pas dans l'invocation de monscript.sh, il est dans la façon dont monscript.sh lance monAppli. Il faut utiliser "$@" (avec les double quotes, c'est important) :
monAppli "$@" |
Ensuite tu appelles monscript.sh de l'une des façons suivantes :
./monScript.sh -f .\* |
Enfin bref tu comprends, l'important c'est que le shell n'interprète pas le *.
Marsh Posté le 12-06-2007 à 10:22:03
ReplyMarsh Posté le 15-06-2007 à 18:12:56
cheloute a écrit : Eh ben merci beaucoup, c'est pile poil ce qu'il me fallait |
http://fr.lang.free.fr/cours/Shell_v2.0.pdf => Chapitre VI => Neutralisation des méta caractères
Marsh Posté le 11-06-2007 à 18:21:14
Bonjour tout le monde,
N'étant pas très doué en script linux bash, j'ai tenté de faire plein de chose pour passer les caractères .* en parametre de mon script, sans succès, .* est toujours interprété...
Alors, en résumé, j'ai
$ ./monScript.sh -f .* à exécuter...
à l'interieur de monScript.sh, j'ai donc du code, puis le lancement de mon appli
monAppli $*, qui doit donc être
monAppli -f .*
J'ai donc essayé de faire en ligne de commande :
$ ./monScript.sh -f .*
$ ./monScript.sh -f ".*"
$ ./monScript.sh -f '.*'
$ ./monScript.sh -f ".\*"
$ ./monScript.sh -f '.\*'
$ ./monScript.sh -f "'.*'"
$ ./monScript.sh -f "qr.*"
$ ./monScript.sh -f \.\*
$ ./monScript.sh -f "\.\*"
$ ./monScript.sh -f ./*
$ ./monScript.sh -f ".\\*" etc etc etc...
ce que $* me retourne est l'interprétation du caractère spécial *, et non la string *
Y a t'il un moyen d'obtenir le caractère * non interprété (oui j'ai donc bien essayé *, \* et "\*", mais rien à faire, * est toujours interprété avant d'etre passé à mon script...) ??
Ah oui j'ai aussi essayé de combiner ces "" et ces \ avec un peu la même chose a l'interieur de mon script, par exemple $ ./monScript.sh -f "./*" d'un coté et "$2", "\$2", ... à l'interieur du script, mais non, sans succès...
Si quelqu'un à une idée...
ma version de sh/bash est :
GNU bash, version 3.00.15(1)-release (i386-redhat-linux-gnu)
Copyright (C) 2004 Free Software Foundation, Inc.
sur une Red Hat ES 4.2
Merci pour votre aide !
Cheloute