Black_Wolve Geschrieben 8. Dezember 2004 Teilen 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? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
kills Geschrieben 8. Dezember 2004 Teilen Geschrieben 8. Dezember 2004 ja hier biste falsch, das gehört ins Unix forum Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Black_Wolve Geschrieben 8. Dezember 2004 Autor Teilen Geschrieben 8. Dezember 2004 *g* dann bitte ich mal einen der mods, das dorthin zu verbasteln ^^ Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Nachtgeist Geschrieben 8. Dezember 2004 Teilen 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 ) Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
gambit1978 Geschrieben 10. Dezember 2004 Teilen 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...) Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
gambit1978 Geschrieben 10. Dezember 2004 Teilen 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 Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.