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
$fooavec la valeur'10'et$xavec 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=$fooqui sera évalué ày=10. - Le résultat de
echo $yest 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