¿Qué puedes hacer con el eval? ¿dominio? ¿Por qué es útil? ¿Es algún tipo de función integrada en bash? No hay man página para eso..
Respuesta aceptada:
eval es parte de POSIX. Es una interfaz que puede ser un shell integrado.
Se describe en el “Manual del programador de POSIX”:http://www.unix.com/man-page/posix/1posix/eval/
eval - construct command by concatenating arguments
Tomará un argumento y construirá un comando del mismo, que será ejecutado por el shell. Este es el ejemplo de la página de manual:
1) foo=10 x=foo
2) y='$'$x
3) echo $y
4) $foo
5) eval y='$'$x
6) echo $y
7) 10
- En la primera línea, define
$foocon el valor'10'y$xcon el valor'foo'. - Ahora define
$y, que consta de la cadena'$foo'. El signo de dólar debe escaparse
con'$'. - Para verificar el resultado,
echo $y. - El resultado será la cadena
'$foo' - Ahora repetimos la tarea con
eval. Primero evaluará$xa la cadena'foo'. Ahora tenemos la instruccióny=$fooque será evaluado ay=10. - El resultado de
echo $yahora es el valor'10'.
Esta es una función común en muchos idiomas, p. Perl y JavaScript.
Eche un vistazo a perldoc eval para ver más ejemplos:http://perldoc.perl.org/functions/eval.html