La commande eval

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
$

Commentaires

La syntaxe ${!var} fait le même travail

Effectivement
Merci pour l'info

$ nom=toto
$ var=nom
$ echo ${!var}
toto

Ajouter un commentaire

Filtered HTML

  • Les adresses de pages web et de messagerie électronique sont transformées en liens automatiquement.
  • Tags HTML autorisés : <a> <em> <strong> <cite> <blockquote> <code> <ul> <ol> <li> <dl> <dt> <dd>
  • Les lignes et les paragraphes vont à la ligne automatiquement.

Plain text

  • Aucune balise HTML autorisée.
  • Les adresses de pages web et de messagerie électronique sont transformées en liens automatiquement.
  • Les lignes et les paragraphes vont à la ligne automatiquement.
CAPTCHA
Cette question permet de s'assurer que vous êtes un utilisateur humain et non un logiciel automatisé de pollupostage.
CAPTCHA visuel
Entrez les caractères (sans espace) affichés dans l'image.