Am Friday 16 June 2006 14:05 schrieb Rolf Masfelder:
mag sein das das Thema OT ist, aber mein Problem besteht auf einem Suse 10.0 System ...
Ich brauch einen Hinweis wo ich weiterlesen kann, weil mir keine sinnvollen begriffe einfallen nach denen ich suchen / googlen könnte.
Hier ein Beispiel wie das Problem aussieht:
(in einer Konsole; passiert aber auch innerhalb von bash-scripten)
rma@wasser:~> test=geht rma@wasser:~> echo $test geht rma@wasser:~> echo "nicht" | while read wort; do test="$test _${wort}_"; echo $test; done geht _nicht_ rma@wasser:~> echo $test geht
DerVariablen test wird Anfangs etwas zugewiesen ("geht") dann in der while-schleife noch etwas angehängt ("_nicht_"). Am Ende der Schleife wird wie erwartet "geht _nicht_" ausgegeben!
Nach der Schleife ergibt ein "echo $test " aber wieder "geht".
Was passiert da?
Das "|" erzeugt eine SubShell. Dort hin werden zwar die Variablen als Kopie mitgenommen, aber veränderungen nicht mit zurück.
Wie kann ich nach der Schleife den Inhalt der in der Schleife veränderten Variablen bekommen. Mir wäre hier ein "geht _nicht_" wirklich lieber (auch wenn sich das jetzt komisch liest).
test=`echo "nicht" | while read wort; do test="$test _${wort}_"; echo $test; done` -- Andreas -- Um die Liste abzubestellen, schicken Sie eine Mail an: suse-linux-unsubscribe@suse.com Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: suse-linux-help@suse.com