[Linux] Question bash - creation de variable
Daniel Huhardeaux
daniel.huhardeaux@::1
Sam 28 Juin 16:00:41 CEST 2008
Jean BENOIT a écrit :
> On Sat, Jun 28, 2008 at 01:56:30PM +0200, Daniel Huhardeaux wrote:
>
>> j'aimerai créer des variables avec un prefixe flottant (ex:
>> env1_MaVariable et env2_MaVariable). Mon idée:
>>
>> #!/bin/bash
>>
>> prefix1=env1_
>> prefix2=env2_
>> set ${prefix1}MaVariable=valeur1
>> set ${prefix2}MaVariable=valeur2
>>
>
> Le problème vient du fait que la commande "set" ne fixe pas la valeur
> d'une variable :
>
> $set a=1
> $echo $a
>
> $
>
> On peut s'en sortir ainsi :
>
> eval ${prefix1}MaVariable=valeur1
> eval ${prefix2}MaVariable=valeur2
>
> Je ne suis pas sur que ton idée soit très pratique à l'usage
Ce n'est pas tout à fait cela. Je reprend mon schéma: j'ai une liste de
numéros de chambre et aimerai avoir des variables prefixées ou suffixées
par le numéro de chambre. Exemple:
#!/bin/bash
prefix1=env1_
prefix2=env2_
LISTE="101 102 103"
for p in $LISTE; do
${prefix1}VAR$p="default"
export ${prefix1}VAR$p
done
ce qui me créerait les variables env1_VAR101, env1_VAR102 et env1_VAR103
ayant toutes comme valeur "default" et qui seraient exportées dans mon
environnement. Le contenu de ces variables peut également avoir été
modifié au préalable par un:
${prefix1}VAR$p=$(/bin/cat ${prefix1}VAR$p)
qui est un fichier portant le nom de la variable et stocker dans un
répertoire. Par ex, si le fichier env1_VAR102 dans ce répertoire
contient "personnel", la variable env1_VAR102 contiendra alors cette valeur.
Le but est de stocker des valeurs de variables qui doivent être non
volatiles et pouvoir récupérer ces valeurs en cas d'arrêt ou crash de
l'application ou extinction de la machine.
Merci pour ton aide
--
Daniel Huhardeaux _____ ____ ____ _____ _____ _
enum +33 368 460 088 (_ __) _ ) _ (_ __) _ _(_) +48 22 489 9531
iaxtel 1-700-849-6983 / / / // / // / / / / /_/ / /
sip/iax:callto 101@::1/_/ ( ___( ___/ /_/ (_/ (_/_/.net FWD# 422493
Plus d'informations sur la liste de diffusion linux