Syntaxe :
eval expr1 expr2 ..... exprn
La commande eval permet de faire subir à une ligne de commande une double évaluation.
Exemple :
Initialisation de la variable nom
$ nom=toto
Initialisation de la variable var avec le nom de la variable définie ci dessus
$ var=nom
Affichage des valeurs des variables
$ echo $nom
toto
$ echo $var
nom
$ echo \$$var
$nom
$
Pour obtenir $var=toto, il faut obligatoirement utiliser la commande eval de cette manière
$ eval echo \$$var
toto
$
La commande eval évalue en premier la variable $var, le premier $ étant protégé par un anti-slash
==> eval echo \$nom
puis évalue le résultat de la première évaluation, c'est à dire $nom (suppression de l'anti-slash)
==> eval echo $nom
Initialisation de la variable var2
$ var2=\$$var
$ echo $var2
$nom
$ eval var2=\$$var
$ echo $var2
toto
$