Cosa puoi fare con eval
comando? Perché è utile? È una specie di funzione incorporata in bash? Non c'è nessun man
pagina per questo..
Risposta accettata:
eval
fa parte di POSIX. È un'interfaccia che può essere una shell integrata.
È descritto nel "Manuale del programmatore POSIX":http://www.unix.com/man-page/posix/1posix/eval/
eval - construct command by concatenating arguments
Prenderà un argomento e ne costruirà un comando, che verrà eseguito dalla shell. Questo è l'esempio della manpage:
1) foo=10 x=foo
2) y='$'$x
3) echo $y
4) $foo
5) eval y='$'$x
6) echo $y
7) 10
- Nella prima riga definisci
$foo
con il valore'10'
e$x
con il valore'foo'
. - Ora definisci
$y
, che consiste nella stringa'$foo'
. Il simbolo del dollaro deve essere preceduto da
con'$'
. - Per controllare il risultato,
echo $y
. - Il risultato sarà la stringa
'$foo'
- Ora ripetiamo l'assegnazione con
eval
. Innanzitutto valuterà$x
alla stringa'foo'
. Ora abbiamo l'istruzioney=$foo
che verrà valutato iny=10
. - Il risultato di
echo $y
è ora il valore'10'
.
Questa è una funzione comune in molte lingue, ad es. Perl e JavaScript.
Dai un'occhiata a perldoc eval per ulteriori esempi:http://perldoc.perl.org/functions/eval.html