Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1704 connectés 

  FORUM HardWare.fr
  Programmation
  Shell/Batch

  [SHELL SH/BASH] Passage du caractère * en parametre

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[SHELL SH/BASH] Passage du caractère * en parametre

n°1573404
cheloute
Posté le 11-06-2007 à 18:21:14  profilanswer
 

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
 

mood
Publicité
Posté le 11-06-2007 à 18:21:14  profilanswer
 

n°1573442
matafan
Posté le 11-06-2007 à 20:46:06  profilanswer
 

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 .\*
./monScript.sh -f '.*'
./monScript.sh -f ".*"
./monScript.sh -f .'*'
./monScript.sh -f ."*"


Enfin bref tu comprends, l'important c'est que le shell n'interprète pas le *.

n°1573605
cheloute
Posté le 12-06-2007 à 10:22:03  profilanswer
 

Eh ben merci beaucoup, c'est pile poil ce qu'il me fallait :)

n°1575693
Sve@r
Posté le 15-06-2007 à 18:12:56  profilanswer
 

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


---------------
Vous ne pouvez pas apporter la prospérité au pauvre en la retirant au riche.

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Shell/Batch

  [SHELL SH/BASH] Passage du caractère * en parametre

 

Sujets relatifs
modifier une chaine de caractereParamètre du programme
[SHELL] Supprimer les lignes blanches d'un fichierPassage Java/C++ petite question :)
Recherche d'un caractere dans une chainescript bash, avec ssh cat toto > titi
[ Résolu ] Problème lors du Passage des Paramètesexec + afficher resultat script bash
Exec + afficher resultat script bashPassage HTML -> XHTML
Plus de sujets relatifs à : [SHELL SH/BASH] Passage du caractère * en parametre


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR