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

Shell et commandes GNU Discussion :

[Script Bash] Doubles quotes mandatory (selon contexte) sinon l'expansion de variable foire !


Sujet :

Shell et commandes GNU

  1. #1
    Expert confirmé
    Avatar de Jipété
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    11 135
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 11 135
    Par défaut [Script Bash] Doubles quotes mandatory (selon contexte) sinon l'expansion de variable foire !
    Bonjour,

    si quelqu'un pouvait m'expliquer...

    Dans un script tout bête (Debian 32 bits, Bash 4.2.37), j'ai :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    inisection=fixes24
    lazversion=lazarus14
    #test1
    lazdir=$lazversion_$inisection   # foire grave
    #test2
    lazdir="$lazversion"_$inisection   # doubles quotes mandatory sinon '$lazversion_' pas pris en compte
     
    echo $lazversion
    echo $lazdir
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    lazarus14
    fixes24 <-- sans double quotes
    lazarus14_fixes24 <-- avec
    Si la double quote fermante est après l'underscore ou après $inisection, ça foire pareil.

    Au départ je ne voyais pas la nécessité de double quoter mes variables puisque je sais qu'elles ne sont pas vides.
    Et même si elle était vide, cette variable $lazversion (ce qui n'est pas le cas, confirmé par l'echo), je ne vois pas comment/pourquoi l'underscore qui la suit disparaît...

    Merci de votre explication,

  2. #2
    Expert confirmé

    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    1 946
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 1 946
    Par défaut
    Salut,

    Dans ton cas lazdir=$lazversion_$inisection bash cherche la variable $lazversion_ et ne la trouve pas pour cause

    Le B.A BA du bash voudrait que les variables soient entourées par des accolades, surtout lors de concaténation.

    lazdir=${lazversion}_${inisection} marche parfaitement.


  3. #3
    Expert confirmé
    Avatar de Jipété
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    11 135
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 11 135
    Par défaut
    Citation Envoyé par zipe31 Voir le message
    Salut,

    Dans ton cas lazdir=$lazversion_$inisection bash cherche la variable $lazversion_ et ne la trouve pas pour cause
    Ah bon sang mais c'est bien sûr !

    Comme quoi quand on a le nez dans le guidon on ne risque pas de voir le paysage...

    Merci à toi et bon dimanche !

  4. #4
    Expert confirmé

    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    1 946
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 1 946
    Par défaut
    Citation Envoyé par Jipété Voir le message
    Merci à toi et bon dimanche !
    De rien et bon dimanche à toi également

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [PowerShell] double quotes et variables dans une ligne de script Powershell
    Par Aenean dans le forum Scripts/Batch
    Réponses: 1
    Dernier message: 08/12/2014, 17h55
  2. Réponses: 4
    Dernier message: 06/02/2013, 10h34
  3. Requête POST dans un script bash
    Par desperado dans le forum Linux
    Réponses: 4
    Dernier message: 11/12/2007, 22h38
  4. Problème script Bash
    Par Sphost dans le forum Linux
    Réponses: 10
    Dernier message: 26/07/2005, 09h56
  5. Réponses: 4
    Dernier message: 05/07/2004, 13h17

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