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
$foomit dem Wert'10'und$xmit 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$xausgewertet in die Zeichenfolge'foo'. Jetzt haben wir die Anweisungy=$foowas zuy=10ausgewertet wird . - Das Ergebnis von
echo $yist 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