Que pouvez-vous faire avec le eval
commande? Pourquoi est-ce utile ? Est-ce une sorte de fonction intégrée dans bash ? Il n'y a pas d'man
page pour cela..
Réponse acceptée :
eval
fait partie de POSIX. C'est une interface qui peut être un shell intégré.
Il est décrit dans le "Manuel du programmeur POSIX":http://www.unix.com/man-page/posix/1posix/eval/
eval - construct command by concatenating arguments
Il prendra un argument et en construira une commande, qui sera exécutée par le shell. Voici l'exemple de la page de manuel :
1) foo=10 x=foo
2) y='$'$x
3) echo $y
4) $foo
5) eval y='$'$x
6) echo $y
7) 10
- Dans la première ligne, vous définissez
$foo
avec la valeur'10'
et$x
avec la valeur'foo'
. - Définissez maintenant
$y
, qui se compose de la chaîne'$foo'
. Le signe dollar doit être échappé
avec'$'
. - Pour vérifier le résultat,
echo $y
. - Le résultat sera la chaîne
'$foo'
- Maintenant, nous répétons la tâche avec
eval
. Il évaluera d'abord$x
à la chaîne'foo'
. Nous avons maintenant la déclarationy=$foo
qui sera évalué ày=10
. - Le résultat de
echo $y
est maintenant la valeur'10'
.
Il s'agit d'une fonction courante dans de nombreuses langues, par ex. Perl et JavaScript.
Jetez un œil à perldoc eval pour plus d'exemples :http://perldoc.perl.org/functions/eval.html