![](https://seccdn.libravatar.org/avatar/4ed87db0fc3ef3a9ef19692922523226.jpg?s=120&d=mm&r=g)
Dominik Klein wrote (please find the answer below the original text):
Hallo Liste
wie ich gerade erfahren musste, werden Kommandos in Pipe-Konstruktionen in einer Sub-Shell ausgeführt, wenn mindestens ein Teil (ausgenommen des letzten Kommandos) des Konstruktes ein Shell-Builtin-Command ist.
Quelle: http://www3.informatik.uni-erlangen.de/Lehre/DOLINUX/WS2001/proto_011031-1.h...
Jetzt habe ich folgendes Skript: ----------- a=0 b=0 while [ $a -le 3 ] do while [ $b -le 3 ] do if [ $b -eq 2 ] then bla=blub echo $bla # hier ist $bla gesetzt fi b=$(($b+1)) done
echo $bla #hier ist $bla auch noch gesetzt a=$(($a+1))
done|sort
echo $bla # hier ist $bla wieder leer -------------
Dass diese Schleife total sinnlos ist, ist mir klar, es geht um den prinzipiellen Aufbau. Nach diesen Schleifen möchte ich $bla ausgeben. $bla ist aber leer.
"bla=blub" durch "export bla=blub" zu ersetzen, bringt keinen Erfolg.
Gibt es eine Möglichkeit, die Variable aus dieser Subshell herauszukriegen?
Grüße Dominik
Das scheint eher ein Übergabeproblem zu "sort" zu sein. Lass das "sort" weg, dann hast du auch dein "blub" wieder. Ansonsten könnte es evtl. helfen, die Zuweisungen in eine weitere Variable zu schreiben und die dann zu sortieren... -Ingo.