Le code suivant
8<------8<------8<------8<------8<------8<------8<------8<------8<------
#!/bin/bash
prefix='pre_'
valeur='foo bar'
eval "${prefix}var=\"$valeur\""
tmp="${prefix}var"
var=${!tmp}
echo $pre_var # donne foo bar
echo $var # donne aussi foo bar
8<------8<------8<------8<------8<------8<------8<------8<------8<------
crée une variable, ici pre_var, dont le nom dépend de la valeur de
$prefix.
Ensuite la syntaxe ${!tmp} permet d'utiliser cette variable.
Je n'ai pas besoin d'un tel mécanisme... c'est juste pour comprendre,
pour ma culture:
1. y-a-t-il plus simple pour faire cela ?
2. comment peut-on obtenir un comportement similaire à
var=${!tmp} sans passer par une variable auxiliaire.
Je pensais à
var=$(eval 'echo ${'${prefix}var'}')
mais j'ose à peine l'écrire...
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Stephane CHAZELAS
2009-10-09, 15:12(+02), Ph Ivaldi:
Bonjour,
Le code suivant 8<------8<------8<------8<------8<------8<------8<------8<------8<------ #!/bin/bash
prefix='pre_' valeur='foo bar'
eval "${prefix}var="$valeur""
tmp="${prefix}var" var=${!tmp}
echo $pre_var # donne foo bar echo $var # donne aussi foo bar 8<------8<------8<------8<------8<------8<------8<------8<------8<------
crée une variable, ici pre_var, dont le nom dépend de la valeur de $prefix. Ensuite la syntaxe ${!tmp} permet d'utiliser cette variable.
Je n'ai pas besoin d'un tel mécanisme... c'est juste pour comprendre, pour ma culture: 1. y-a-t-il plus simple pour faire cela ? 2. comment peut-on obtenir un comportement similaire à var=${!tmp} sans passer par une variable auxiliaire.
Je pensais à var=$(eval 'echo ${'${prefix}var'}') mais j'ose à peine l'écrire...
Le code suivant
8<------8<------8<------8<------8<------8<------8<------8<------8<------
#!/bin/bash
prefix='pre_'
valeur='foo bar'
eval "${prefix}var="$valeur""
tmp="${prefix}var"
var=${!tmp}
echo $pre_var # donne foo bar
echo $var # donne aussi foo bar
8<------8<------8<------8<------8<------8<------8<------8<------8<------
crée une variable, ici pre_var, dont le nom dépend de la valeur de
$prefix.
Ensuite la syntaxe ${!tmp} permet d'utiliser cette variable.
Je n'ai pas besoin d'un tel mécanisme... c'est juste pour comprendre,
pour ma culture:
1. y-a-t-il plus simple pour faire cela ?
2. comment peut-on obtenir un comportement similaire à
var=${!tmp} sans passer par une variable auxiliaire.
Je pensais à
var=$(eval 'echo ${'${prefix}var'}')
mais j'ose à peine l'écrire...
Le code suivant 8<------8<------8<------8<------8<------8<------8<------8<------8<------ #!/bin/bash
prefix='pre_' valeur='foo bar'
eval "${prefix}var="$valeur""
tmp="${prefix}var" var=${!tmp}
echo $pre_var # donne foo bar echo $var # donne aussi foo bar 8<------8<------8<------8<------8<------8<------8<------8<------8<------
crée une variable, ici pre_var, dont le nom dépend de la valeur de $prefix. Ensuite la syntaxe ${!tmp} permet d'utiliser cette variable.
Je n'ai pas besoin d'un tel mécanisme... c'est juste pour comprendre, pour ma culture: 1. y-a-t-il plus simple pour faire cela ? 2. comment peut-on obtenir un comportement similaire à var=${!tmp} sans passer par une variable auxiliaire.
Je pensais à var=$(eval 'echo ${'${prefix}var'}') mais j'ose à peine l'écrire...