Précédent   Forum des professionnels en informatique > Systèmes > Linux > Applications > Shell
Shell Vos questions sur l'utilisation des commandes shell
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 09/09/2008, 18h19   #1
Membre chevronné
 
Avatar de valefor
 
Inscription : décembre 2006
Messages : 689
Détails du profil
Informations forums :
Inscription : décembre 2006
Messages : 689
Points : 666
Points : 666
Par défaut En script shell, comment générer un nom de variable ?

Bonjour, je souhaite utiliser une variable en fonction d'une autre comme c'est décrit dans le code ci-dessous.

Je ne veux pas avoir recours à un tableau (sauf si bash supporte les tableaux associatifs, mais il ne me semble pas).

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#!/bin/bash

PATCHES_UN="foo_1 \
           bar_1 \
           foobar_1"
             
PATCHES_DEUX="foo_2 \
           bar_2 \
           foobar_2"

ID="UN"

FOO=${PATCHES_$ID} # C'est là que je ne sais pas comment faire
              
for files in ${FOO}; do
  echo "-> $files"
done
Merci pour vos suggestions.
valefor est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/09/2008, 18h39   #2
Expert Confirmé
 
Homme
Inscription : septembre 2006
Messages : 2 293
Détails du profil
Informations personnelles :
Sexe : Homme

Informations forums :
Inscription : septembre 2006
Messages : 2 293
Points : 2 741
Points : 2 741
Citation:
Envoyé par valefor Voir le message
Bonjour, je souhaite utiliser une variable en fonction d'une autre comme c'est décrit dans le code ci-dessous.

Je ne veux pas avoir recours à un tableau (sauf si bash supporte les tableaux associatifs, mais il ne me semble pas).

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#!/bin/bash

PATCHES_UN="foo_1 \
           bar_1 \
           foobar_1"
             
PATCHES_DEUX="foo_2 \
           bar_2 \
           foobar_2"

ID="UN"

FOO=${PATCHES_$ID} # C'est là que je ne sais pas comment faire
              
for files in ${FOO}; do
  echo "-> $files"
done
Merci pour vos suggestions.
Code :
1
2
3
 
NAME="PATCHES_"$ID
FOO=${!NAME}
l'astuce c'est le ! …
JeitEmgie est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/09/2008, 21h23   #3
Membre chevronné
 
Avatar de valefor
 
Inscription : décembre 2006
Messages : 689
Détails du profil
Informations forums :
Inscription : décembre 2006
Messages : 689
Points : 666
Points : 666
Merci pour votre aide. J'avais vu le "!" sur des exemples de ce genre de choses, mais je n'arrivais pas à me convaincre que c'était LA solution. Vous confirmez donc cet usage...
valefor est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 05h21.


 
 
 
 
Partenaires

Hébergement Web