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

  FORUM HardWare.fr
  Programmation
  Shell/Batch

  Problème entre argument + fonction + variable + espace

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Problème entre argument + fonction + variable + espace

n°1564620
saucisson
Posté le 24-05-2007 à 15:02:38  profilanswer
 

Bonjour à tous
 
J'ai une variable (opt dans le cod ci-dessous) qui contient "argument 1" et "argument2".
Ainsi, la commande "echo $opt" donne la chaine "argument 1 argument2". On notera que le 1er argument est coupé en 2
Quand je passe cette variable à une commande, la commande me coupe la chaine en 3 morceau au lieu de 2
J'ai essaye de protéger mon premier argument avec \" mais rien n'y fait.
Ci dessous, le code :
 
############################
#!/bin/sh
 
fonction()
{
    echo "1er param : "$1
    echo "2ieme param : "$2
    echo "3ieme param : "$3
}
 
opt="\"argument 1\" argument2"
fonction $opt
echo "A la main :"
fonction "argument 1" argument2
############################
 
On obtient la trace :
1er param : "argument
2ieme param : 1"
3ieme param : argument2
 
A la main :
1er param : argument 1
2ieme param : argument2
3ieme param :  
 
############################
 
En fait mon problème est de savoir comment faire interpréter le caractère " dans le 1er cas quand je passe l'argument par une variable.
 
Merci beaucoup de votre aide
A+

mood
Publicité
Posté le 24-05-2007 à 15:02:38  profilanswer
 

n°1564809
qqcvd
Posté le 24-05-2007 à 18:34:59  profilanswer
 

saucisson a écrit :

Bonjour à tous
 
J'ai une variable (opt dans le cod ci-dessous) qui contient "argument 1" et "argument2".
Ainsi, la commande "echo $opt" donne la chaine "argument 1 argument2". On notera que le 1er argument est coupé en 2
Quand je passe cette variable à une commande, la commande me coupe la chaine en 3 morceau au lieu de 2
J'ai essaye de protéger mon premier argument avec \" mais rien n'y fait.
Ci dessous, le code :
 
############################
#!/bin/sh
 
fonction()
{
    echo "1er param : "$1
    echo "2ieme param : "$2
    echo "3ieme param : "$3
}
 
opt="\"argument 1\" argument2"
eval fonction $opt
echo "A la main :"
fonction "argument 1" argument2
############################
 
On obtient la trace :
1er param : "argument
2ieme param : 1"
3ieme param : argument2
 
A la main :
1er param : argument 1
2ieme param : argument2
3ieme param :  
 
############################
 
En fait mon problème est de savoir comment faire interpréter le caractère " dans le 1er cas quand je passe l'argument par une variable.
 
Merci beaucoup de votre aide
A+


 
 
 
regarde, j ai ajouté eval a ton code


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

  Problème entre argument + fonction + variable + espace

 

Sujets relatifs
[C] fonction pour remplacer du texte dans une stringProblème de création de boucles
Problème requete SQL sur du PHP[JS] Problème de rafraichissement de l'affichage
DirectShow - Problème de FullScreen[HELP] Problème de Tableau
Problème d'installation du forum phpBBProbleme avec un module VBA
Problème de coordonnées...fonction recherche de plusieurs éléments
Plus de sujets relatifs à : Problème entre argument + fonction + variable + espace


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