Black_Wolve Geschrieben 8. Dezember 2004 Geschrieben 8. Dezember 2004 Hallo, ich weiss nicht, ob die Frage hier gut aufgehoben ist oder eher unter Unix geschoben werden soll, daher poste ich es hier: Ich möchte aus einer Subshell (ksh) heraus Variablen exportieren und an die nächsthöhere zurückgeben, auf dass sie diese übernimmt. Ich hab mich im Netz umgeschaut, aber bisher nichts gefunden. Gibt es eine solche Möglichkeit überhaupt?
kills Geschrieben 8. Dezember 2004 Geschrieben 8. Dezember 2004 ja hier biste falsch, das gehört ins Unix forum
Black_Wolve Geschrieben 8. Dezember 2004 Autor Geschrieben 8. Dezember 2004 *g* dann bitte ich mal einen der mods, das dorthin zu verbasteln ^^
Nachtgeist Geschrieben 8. Dezember 2004 Geschrieben 8. Dezember 2004 `( export test=foobar ; echo "subshell2: $test" >&2 ; echo "export test=$test" )` ; env | grep ^test= Ne andere Moeglichkeit sehe ich gerade nicht. Ich wage sogar zu behaupten, dass das der einzig praktikable Ansatz ist ... (fuer eine Alternative waer ich aber trotzdem zu haben )
gambit1978 Geschrieben 10. Dezember 2004 Geschrieben 10. Dezember 2004 Ich möchte aus einer Subshell (ksh) heraus Variablen exportieren und an die nächsthöhere zurückgeben, auf dass sie diese übernimmt. Ich hab mich im Netz umgeschaut, aber bisher nichts gefunden. Gibt es eine solche Möglichkeit überhaupt? Hab auch schon irre viel damit rumexperimentiert. Soweit ich das sehe, gibt es bisher dafür keine direkte Möglichkeit. Das sind eben die Grenzen sog. Stapelverarteitungsabläufe. Hier ist jede Hochsprache klar überlegen. Eine Möglichkeit die ich oft nutze um Variablen/Werte an eine Muttershell zu übergeben ist aber der Umweg über eine Datei. Du läßt die Tochtershell ihre Berechnungs- oder Ausleseergebnisse einfach in eine Datei schreiben und gibst der Muttershell eine Routine mit die eben diese Datei gemäß deinen Vorstellungen ausliest. Damit lassen sich ne ganze Reihe geiler Sachen anstellen. (z.B. ne Skriptbasierte Softwareverteilung...)
gambit1978 Geschrieben 10. Dezember 2004 Geschrieben 10. Dezember 2004 @Nachtgeist Dein Ansatz ist zwar nicht schlecht gedacht, nur dürfte der nicht Funktionieren. Ein Export Befehl von einer Tochtershell ausgelöst exportiert zwar schon die entsprechenden Variablen ins Environment, aba darauf kann die Muttershell noch nicht zugreifen! -> Die wurde ja schon vor dem Exportieren gestartet und kommt somit nicht an diese "neuen Infos". Austesten läßt sich das, wenn du einmal deine Befehlsabfolge Händisch eingibts und nen export dabei drin hast. -> Sequenz rollt an, führt den export aus und macht wieder zu. Die Abfrage daraufhin erfolgt wieder über einen neuen Prozess, der selbst natürlich das "neue" Environment kennt und damit arbeiten kann. Bei nem Skript dagegen rollt ein Prozess an, löst verschiedene Tochterprozesse aus (oder auch nicht :floet: ) und kehrt immer nur maximal bis zu seinem Ursprungsprozess zurück. Greetz
Empfohlene Beiträge
Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren
Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können
Benutzerkonto erstellen
Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!
Neues Benutzerkonto erstellenAnmelden
Du hast bereits ein Benutzerkonto? Melde Dich hier an.
Jetzt anmelden