La commande eval eval
Syntaxe
eval expr1 expr2 ... exprn
La commande eval permet de faire subir à une ligne de commande une double évaluation. Elle prend en argument une suite d’expressions sur laquelle elle effectue les opérations suivantes : Double évaluation
-
Première étape : les caractères spéciaux contenus dans les expressions sont traités. Le résultat du traitement aboutit à une ou plusieurs autres expressions : eval autre_exp1 autre_exp2 ... autre_expn. L’expression autre_exp1 représentera la commande Unix à lancer dans la deuxième étape.
-
Deuxième étape : eval va lancer la commande autre_exp1 autre_exp2 ... autre_expn. Mais auparavant, cette ligne de commande va subir une nouvelle évaluation. Les caractères spéciaux sont traités, puis la commande lancée.
Exemple
Définition de la variable nom qui contient "christie" :
$ nom=christie
Définition de la variable var qui contient le nom de la variable définie ci-dessus :
$ var=nom
Comment faire afficher la valeur "christie" en se servant de la variable var ? Dans la commande suivante, le shell substitue $$ par le PID du shell courant :
$ echo $$var
17689var
Dans la commande suivante, le nom de la variable est isolé. Cela ne pourra pas fonctionner non plus : le shell génère une erreur de syntaxe car il ne peut traiter les deux caractères "$" simultanément...