[ksh] export in script zeigt außerhalb keine Wirkung



  • Ich benutze die MKS Korn shell unter Windows. In meiner profile.ksh wird eine Reihe von Variablen gesetzt, unter anderem

    export DIENSTE_IMPORT=${LF_PROJECT_HOME}/interface/dienste_interface
    

    Diese Variable möchte ich ändern, wenn ich ein bestimmtes Script ausführe. Klingt einfach, also in dem Script eine Zeile eingefügt:

    export DIENSTE_IMPORT=${LF_PROJECT_HOME}/dienste
    
    #sicherheitshalber n test
    echo $DIENSTE_IMPORT
    

    Ich führe das Script aus, es wird auch der neue Pfad ausgegeben, aber nach Beendigung des Scripts ist wieder der alte Pfad gesetzt. Hat jemand n Tip was ich falsch mache?



  • ist die Wirkung von export nicht auf Tochter-Prozesse derjenigen Shell beschränkt, in der der export vorkommt ?

    Wenn Du in dem Skript bspw. ein xterm startest, müßte die exportierte Variable darin sichtbar sein.



  • Dieser Thread wurde von Moderator/in rüdiger aus dem Forum Rund um die Programmierung in das Forum Linux/Unix verschoben.

    Im Zweifelsfall bitte auch folgende Hinweise beachten:
    C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?

    Dieses Posting wurde automatisch erzeugt.



  • u_ser-l schrieb:

    ist die Wirkung von export nicht auf Tochter-Prozesse derjenigen Shell beschränkt, in der der export vorkommt ?

    Ja. Ich kenne mich mit der ksh nicht aus. Aber zumindest bei der bash gibt es die Möglichkeit ein Skript zu "sourcen", was bedeutet, dass man das Skript in der aktuellen Shell ausführt und daher exportierte Variablen erhalten bleiben. Einfach mit . scriptfile . ksh wird sicher etwas ähnliches haben.



  • pumuckl schrieb:

    Ich benutze die MKS Korn shell unter Windows.

    C++ Forumbot schrieb:

    in das Forum Linux/Unix verschoben.

    Seit wann shell = linux? 😉

    @topic: der Aufruf mit '.' vorweg ist auch in ksh möglich, da es sich allerdings nicht nur um das Setzen von Variablen sondern auch um das Ausführen von buildscripten etc. handelt bin ich da lieber vorsichtig das alles zu sourcen.



  • leider bist du sehr geizig mit informationen darüber, was du _eigentlich_ haben willst. dein isoliertes problem mit dem export wurde beantwortet. sourcen ist die einzige lösung. wenn die in deinem fall nicht möglich ist, hast du entweder pech gehabt, oder musst zusätzliche infos über dein vorhaben herausrücken. 🙂


Anmelden zum Antworten