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 :

$ echo...
Pour consulter la suite, découvrez le livre suivant :
couv_EI6PRO.png
60-signet.svg
En version papier
20-ecran_lettre.svg
En version numérique
41-logo_abonnement.svg
En illimité avec l'abonnement ENI
130-boutique.svg
Sur la boutique officielle ENI
Précédent
Gestion des entrées/sorties d'un script
Suivant
Gestion des signaux