Jörg W. schrieb:
> Kritisch daran: do ... done Schleifen laufen in den meisten Shells in
> einer Subshell, daraus funktioniert das Exportieren einer
> Environment-Variablen dann nicht. Bash ist da eher die Ausnahme. (Ja,
> hier war explizit nach dieser gefragt. Nur, falls das mal jemand über
> die Suchfunktion findet und nachnutzen möchte.)
Das Beispiel oben ist voll POSIX Shell compliant. Die variablen werden
nicht in der do-while schleife exportiert. Stattdessen wird dieses
ausgegeben, und dann als string an eval übergeben. eval führt dieses
export dann in der momentanen schell aus.
Mein script hat aber ein anderes Problem. Im Wert der Variablen werden
vor der Ausgabe die ' nicht Escaped, was eine Sicherheitslücke
darstellt:
1 | * x: '; echo "I\'m in!!!"; echo ' *
|
Auf die schnelle ist mir aber gerade keine gute Alternative zu eval
eingefallen. Ich hatte erst gehofft, ich könnte export nehmen, aber das
hat die Abstände nicht wie erhofft gesplittet.