IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Linux Discussion :

Problème de tirets


Sujet :

Linux

  1. #1
    En attente de confirmation mail
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    30
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 30
    Points : 14
    Points
    14
    Par défaut Problème de tirets
    Bonjour à tous!

    J'ai un (léger) soucis, pas si léger que ça si j'en viens à faire appel à vous.
    Je fait appel dans un shell à une sorte de fonction :
    \chemin\fonction argument1 argument 2 ...

    L'un de ces argument est sous la forme : 'A - B', soit :
    \chemin\fonction arg1 arg2 'A - B' arg4 ...

    Lorsque je passe 'A - B' en argument tel quel, pas de soucis du côté de "fonction" dans mon shell

    Mais ça serait trop simple : j'ai besoin d'aller lire cet agument 'A - B' dans un fichier, ailleurs...


    L'export de ce qui est contenu dans le fichier pour utilisation dans mon shell ne pose pas de pb lorsque les arguments sont différents d'un format 'A - B'.
    Par exemple :
    le fichier contient :
    A
    B
    'A - B'

    Mon malheur vient du fait qu'au niveau du shell, je vais disposer suite à l'export de ce qui est dans le fichier d'une variable "ENTREE=A" ou "ENTREE=B" ou "ENTREE='A - B'"
    donc bien entendu me concernant et dans le but de renseigner convenablement les arguments de "fonction", je procède à la récupération de ce qui va derrière le =
    en gros :
    je dispose de $i dont l'echo renvoie
    ENTREE=A
    ce à quoi j'effectue RESP=${$i##*=}
    si je fait echo $RESP alors on obtient A

    Cool

    Mais si j'applique la même démarche à $i+2, à savoir ici dans notre cas 'A - B', l'écho final de $RESP donne 'A - B' (et non plus ENTREE='A - B' pour ceux qui suivent, vu mes explications un peu foireuses)

    Et là intervient mon problème : lorsque j'utilise $RESP en tant qu'argument dans ma fonction, les "paramètres" tels que A, ou B, pas de soucis, mais arrivé à 'A - B' j'obtiens une erreur :

    export: `-': not a valid identifier

    Pourtant si echo $RESP renvoie 'A - B' et que du coup au lieu de taper
    fonction arg1 arg2 'A - B' .. je tape
    fonction arg1 arg2 $RESP ...
    pourquoi ai-je ce problème?
    Quelle est la différence d'interprétation qui est faite de le taper "directement" ou de lui passer par l'intermédiaire d'une espèce de variable...???
    (car j'ai testé avec '...', avec "...", avec ' " ..." ', avec ' ' ... ' ' etc etc, pas mal de combinaisons différentes en fait, voire toutes?)
    Etant débutant en shell, j'aimerais comprendre (et c'est en lisant divers tutos que j'ai effectué mes tests avec les différentes combinaisons des quotes)

    Merci à tous ceux qui prendront la peine d'arrive à cette phrase! et merci d'avance à ceux que cela inspirera

  2. #2
    Membre éclairé
    Avatar de D[r]eadLock
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    504
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 504
    Points : 750
    Points
    750
    Par défaut
    Euh, te serais-t-il possible de poster un exemple minimal de scripts/fichiers qui démontrent ton problème...
    Et dans ce que tu as dit, si tu tape fonction arg1 arg2 'A - B' je pense que fonction verra A - B (sans les simples quotes).

  3. #3
    En attente de confirmation mail
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    30
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 30
    Points : 14
    Points
    14
    Par défaut
    Tout d'abord merci pour ta réponse,

    Effectivement le passer sous dorme 'A - B' est équivalent à écrire A - B
    Le pb venait de la fameuse fonction "fonction" interprétant directement un $X au lieu de sa valeur (ça tjrs pas compris comment elle fait pour être "plus forte" que le shell en évitant l'interprétation des variables, mais bref!!)

    De plus, mon pb s'est volatilisé du jour où la décision de ne plus utiliser des arguments comportant des tirets (la nomenclature a changé, de 'A - B' pblmatique c'est passé à 'A_B', ahahah deux jours de cogitation pour rien!!)

    Meci encore en tout cas, je n'hésiterai pas à vous solliciter si j'ai des mystères irrésolu en prog, ce forum étant pour moi une manne d'infos très précieuses!

Discussions similaires

  1. Problème de tirets dans un jeu de pendu
    Par bapt44 dans le forum Général Java
    Réponses: 6
    Dernier message: 08/05/2015, 23h44
  2. Réponses: 1
    Dernier message: 04/08/2010, 12h36
  3. Problème bizarre ecran noir tiret blanc ect
    Par cendrillonplay dans le forum Périphériques
    Réponses: 1
    Dernier message: 08/04/2010, 13h02
  4. Problème Findfirst avec un tiret dans le critère
    Par Mors_Ubyte dans le forum VBA Access
    Réponses: 6
    Dernier message: 14/10/2008, 12h14
  5. Réponses: 3
    Dernier message: 05/03/2007, 12h13

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo