framp schrieb:
robi hat Beispiele gegeben in dem
1) Das Beispiel des TEs etwas erweitert und es so funktioniert wie Du es in perl tust da keine Subshell benutzt wird
2) Ein Beispiel gegeben wo eine Subshell benutzt wird und es deshalb nicht funktioniert (eine Pipe läuft in einer Subshell)
3) Ein Beispiel in bash gegeben wie man das Problem in (2) umgeben kann
Beispiele sind schonmal gut. Dann würde mich noch die allgemeine Regel interessieren, wo das Problem auftritt und wo nicht.
In welchen Fällen kommt es zur Eröffnung einer Subshell?
Was passiert, wenn sie schließt?
Kann man Variablen aus der Subshell zur Weiterverarbeitung in die übergeordnete Shell übertragen (was ja wohl auch die Frage des TE war)?
Was ist eine Subshell überhaupt?
Wie steuert die Hauptshell die Subshell?
Wie funktioniert die Übergabe von Variablen aus der Hauptshell an die Subshell?
Kann man auch Arrays übertragen (in die Subshell, aus der Subshell)?
Oder vielleicht Referenzen auf Datenstrukturen?

Erzeugt jeder Schleifendurchlauf eine eigene Subshell? Oder eine while-Schleife insgesamt nur eine Subshell?
Gibt es eine maximale Anzahl von Subshells?
Kann man Kommandos an die Subshell übertragen, während sie läuft (vgl. subprocess-Modul in Python)?
Was hat es mit den geschweiften Klammern in bash auf sich, und warum kann man damit manchmal Subshells unterbinden, obwohl sie doch eigentlich erforderlich sein müßten (sonst wären sie ja überflüssig)?
Es bleibt also noch Vieles, was noch nicht so ganz klar ist.