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 :

Signification du ${!var}


Sujet :

Shell et commandes GNU

  1. #1
    Membre du Club
    Inscrit en
    Mai 2007
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 6
    Par défaut Signification du ${!var}
    Salut tout le monde,
    une question tout cours:
    Quelle est la signification de cette formule ${!var}
    j'ai beau cherché sur internet j'ai pas trouvé

    merci

  2. #2
    Membre émérite Avatar de jmelyn
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Septembre 2007
    Messages
    703
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : Septembre 2007
    Messages : 703
    Par défaut
    Bonsoir,

    Pas besoin d'aller chercher l'info si loin! Elle existe sur tout ordinateur tournant Linux: man bash, puis /\${! donne la solution. En fait, il s'agit d'indirection. Exemple:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    a=b
    b=10
    echo ${!a}
    10
    Compréhensible?

  3. #3
    Membre du Club
    Inscrit en
    Mai 2007
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 6
    Par défaut
    Oui c'est très clair
    Merci chef de ta réponse.

  4. #4
    Membre Expert
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2008
    Messages
    1 515
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Octobre 2008
    Messages : 1 515
    Par défaut
    Bizarre, mon man bash ne parle pas de ${!var} mais seulement de ${!prefix*} et ${!prefix@}. jmelyn, pour ma culture, pourrais-tu coller ici le passe de ton man qui parle de ça ?

  5. #5
    Membre émérite Avatar de jmelyn
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Septembre 2007
    Messages
    703
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : Septembre 2007
    Messages : 703
    Par défaut
    Voici ce que me dit le man de Bash (4e paragraphe de "Parameter Expansion")...
    If the first character of parameter is an exclamation point, a level of variable indirection is introduced. Bash uses the value of the variable formed from the rest of parameter as the name of the variable; this variable is then expanded and that value is used in the rest of the substitution, rather than the value of parameter itself. This is known as indirect expansion. The exceptions to this are the expansions of ${!prefix*} and ${!name[@]} described below. The exclamation point must immediately follow the left brace in order to introduce indirection.
    Par chez nous on dirait à peu près...
    Si le premier caractère est un point d'exclamation, un niveau d'indirection de la variable est introduit. Bash utilise la valeur de la variable formée à partir du reste du paramètre comme le nom de la variable, cette variable est alors "étendue" et sa valeur est utilisée dans le reste de la substitution, plutôt que la valeur du paramètre lui-même. Ceci est appelé "expansion indirecte". Les exceptions sont ${!prefix*} et ${!name[@]} décrites plus loin. Pour introduire l'indirection, le point d'exclamation doit suivre immediatement l'accolade ouvrante.

  6. #6
    Membre Expert
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2008
    Messages
    1 515
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Octobre 2008
    Messages : 1 515
    Par défaut
    Merci, en fait j'ai bien ça dans mon man mais comme je cherchais ${! j'étais passé à côté.

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 22/01/2004, 08h27
  2. Réponses: 6
    Dernier message: 03/09/2003, 10h29
  3. Recherche la signification d'expressions en C
    Par sbadecoder dans le forum C
    Réponses: 16
    Dernier message: 20/08/2003, 07h35
  4. [DTS] Passer les var globales d'un lot à un autre
    Par David K. dans le forum MS SQL Server
    Réponses: 10
    Dernier message: 25/07/2003, 12h39
  5. i386, x86 signification ?
    Par Thcan dans le forum Assembleur
    Réponses: 7
    Dernier message: 04/01/2003, 21h36

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