Was können Sie mit dem eval
tun Befehl? Warum ist es nützlich? Ist es eine Art eingebaute Funktion in Bash? Es gibt keinen man
Seite dazu..
Akzeptierte Antwort:
eval
ist Teil von POSIX. Es ist eine Schnittstelle, die in eine Shell eingebaut werden kann.
Es ist im „POSIX Programmer’s Manual“ beschrieben:http://www.unix.com/man-page/posix/1posix/eval/
eval - construct command by concatenating arguments
Es nimmt ein Argument und konstruiert daraus einen Befehl, der von der Shell ausgeführt wird. Dies ist das Beispiel der Manpage:
1) foo=10 x=foo
2) y='$'$x
3) echo $y
4) $foo
5) eval y='$'$x
6) echo $y
7) 10
- In der ersten Zeile definieren Sie
$foo
mit dem Wert'10'
und$x
mit dem Wert'foo'
. - Definiere jetzt
$y
, die aus der Zeichenfolge'$foo'
besteht . Das Dollarzeichen muss
mit'$'
maskiert werden . - Um das Ergebnis zu überprüfen,
echo $y
. - Das Ergebnis ist der String
'$foo'
- Nun wiederholen wir die Zuweisung mit
eval
. Zuerst wird$x
ausgewertet in die Zeichenfolge'foo'
. Jetzt haben wir die Anweisungy=$foo
was zuy=10
ausgewertet wird . - Das Ergebnis von
echo $y
ist jetzt der Wert'10'
.
Dies ist eine gemeinsame Funktion in vielen Sprachen, z. Perl und JavaScript.
Weitere Beispiele finden Sie unter perldoc eval:http://perldoc.perl.org/functions/eval.html