Variable einer while Schleife erhalten

23/11/2010 - 20:40 von Helmut Schneider | Report spam
Hi,

[helmut@BSDHelmut ~]$ VAR=""; for _VAR in 1 2 3 4; do VAR="${VAR}
${_VAR}"; echo ${VAR}; done; echo ${VAR}
1
1 2
1 2 3
1 2 3 4
1 2 3 4
[helmut@BSDHelmut ~]$ VAR=""; echo "1 2 3 4" | while read a b; do
VAR="${VAR} ${b}"; echo ${VAR}; done; echo ${VAR}
2 3 4

[helmut@BSDHelmut ~]$

Wie kann ich erreichen, dass ${VAR} wie bei der for Schleife erhalten
bleibt?

Posix.

Danke und Gruß, Helmut
 

Lesen sie die antworten

#1 Christian Garbs
23/11/2010 - 23:30 | Warnen spam
Mahlzeit!

Helmut Schneider wrote:

Wie kann ich erreichen, dass ${VAR} wie bei der for Schleife erhalten
bleibt?



Auf die Pipe verzichten, denn die macht eine Sub-Shell auf, die
ihre Variablen nicht an die Ursprungs-Shell vererbt.

Eine konkrete Lösung für dein Problem in Posix habe ich nicht.
Unter bash ginge vielleicht sowas wie "while read <(echo 1 2 3 4)".

Gruß
Christian
Christian.Garbs.http://www.cgarbs.de
I find you lack of faith in the forth dithturbing.
- Darse ("Darth") Vader

Ähnliche fragen