Bash eval

Aus Xinux Wiki
Version vom 3. Juni 2023, 10:39 Uhr von Thomas.will (Diskussion | Beiträge) (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…“)
(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)
Zur Navigation springen Zur Suche springen

Was ist das?

Erklärung

e*val - 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'.