BASH : Est-il possible d'écrire un nom de variable avec des variables ?
P.ex :
Si j'ai une série de variables avec des noms formés d'une partie commune p ex : var1 ; var2
et une variable test assignée par une autre partie du script avec les valeurs 1 ou 2
echo "var$test"
affiche bien selon la valeur de $test : var1 ou var2
Pour le moment je n'ai trouvé que cette solution utilisant une variable supplémentaire name :
Code : Tout sélectionner
#!/bin/bash
#
read -p 'var1 = ??? : ' var1 ;
read -p 'var2 = ??? : ' var2 ;
read -p 'test = 1 ou 2 ??? : ' test ;
name="var$test" ;
echo "$name vaut ${!name}" ;
echo 'fin' ;
exit
et qui donne :
Code : Tout sélectionner
$ ./test.sh
var1 = ??? : toto
var2 = ??? : titi
test = 1 ou 2 ??? : 1
var1 vaut toto
fin
Alors existe-t-il une solution plus directe sans passer par une variable intermédiaire ( comme dans ce qui précède) ?
Dans le style de cette syntaxe (qui ne fonctionne pas) :
Code : Tout sélectionner
$ test=1
$ var1=toto
$ echo $"var$test"
var1
ou
$ echo ${var$test}
bash: ${var$test} : mauvaise substitution
... merci pour votre aide.