Bash eval: Unterschied zwischen den Versionen

Aus Xinux Wiki
Zur Navigation springen Zur Suche springen
(Die Seite wurde neu angelegt: „=Was ist das?= *Es handelt sich dabei um eine Schnittstelle, die als integriertes Kommando in der Shell implementiert sein kann. *Es wird in der "POSIX Program…“)
 
Zeile 3: Zeile 3:
 
*Es wird in der "POSIX Programmer's Manual" beschrieben: http://www.unix.com/man-page/posix/1posix/eval/
 
*Es wird in der "POSIX Programmer's Manual" beschrieben: http://www.unix.com/man-page/posix/1posix/eval/
 
=Erklärung=
 
=Erklärung=
e*val - Konstruiert einen Befehl durch Verkettung von Argumenten
+
*eval - Konstruiert einen Befehl durch Verkettung von Argumenten
 
*Es nimmt ein Argument entgegen und erstellt daraus einen Befehl, der dann von der Shell ausgeführt wird. Hier ist ein Beispiel aus der Manpage:
 
*Es nimmt ein Argument entgegen und erstellt daraus einen Befehl, der dann von der Shell ausgeführt wird. Hier ist ein Beispiel aus der Manpage:
  

Version vom 3. Juni 2023, 10:42 Uhr

Was ist das?

Erklärung

  • eval - Konstruiert einen Befehl durch Verkettung von Argumenten
  • Es nimmt ein Argument entgegen und erstellt daraus einen Befehl, der dann von der Shell ausgeführt wird. Hier ist ein Beispiel aus der Manpage:
  • foo=10 x=foo # 1
  • y='$'$x # 2
  • echo $y # 3
  • $foo
  • eval y='$'$x # 5
  • echo $y # 6
  • In der ersten Zeile wird die Variable $foo mit dem Wert '10' und $x mit dem Wert 'foo' definiert.
  • Anschließend wird die Variable $y als Zeichenkette '$foo' definiert, wobei das Dollarzeichen mit '$' maskiert wird.
  • Um das Ergebnis zu überprüfen, wird der Befehl echo $y ausgeführt.
  • Die Ausgabe von Zeile 1 bis 3 wird die Zeichenkette '$foo' sein.
  • Dann wird die Zuweisung mit eval wiederholt.
  • Zuerst wird $x zu der Zeichenkette 'foo' ausgewertet.
  • Jetzt haben wir die Anweisung y=$foo, die zu y=10 ausgewertet wird.
  • Die Ausgabe von echo $y ist nun der Wert '10'.