export funktioniert irgendwie nicht



  • hi,

    ich habe folgendes \1:

    #!/bin/sh
    BLA="jepp"
    export BLA
    

    nun rufe ich diesen aus meiner bash heraus auf

    ./script
    

    und mach das hier

    echo $BLA
    

    normalerweiße müsste mein script doch die variable BLA exportieren, so das diese systemweit bekannt ist oder? echo $BLA gibt aber nichts aus... wieso nicht? ich versteh das grad irgendwie net

    danke schonmal
    MFG



  • Ganz einfach: wenn du in der Shell ein Programm aufrufst, läuft dieses in einem neuen Prozess (mach' mal "sleep 10" und in einem anderen Fenster "ps ucx"). Die Variable "BLA" ist nur innerhalb dieses Prozesses gültig und wird nicht an den Parent-Prozess zurückgegeben.
    Wenn du Variablen der Shell ändern willst, musst du dein Skript mit

    > . ./script

    aufrufen, dann werden die Kommandozeilen aus "script" in der aktuellen Shell ausgeführt (quasi wie eine Art "Include").

    Martin



  • danke 🙂
    funktioniert wunderbar

    aber ich will in meiner /etc/rc.d/rc "globale" umbegungsvariablen setzen... also PS1 HOSTNAME und sowas... wie sorge ich dafür das diese dann systemweit übernommen werden?

    danke schonmal



  • b_s schrieb:

    danke 🙂
    funktioniert wunderbar

    aber ich will in meiner /etc/rc.d/rc "globale" umbegungsvariablen setzen... also PS1 HOSTNAME und sowas... wie sorge ich dafür das diese dann systemweit übernommen werden?

    danke schonmal

    heyho,

    Hier bietet sich /etc/profile oder ~/.profile besser an. Die Dateien "gelten" allerdings nur für die sh-shell (oder kompatible, zb bash,...). Normalerweise (na ja, was ist schon normal ;)) haut man sowas dort rein, zumal PS1 eindeutig shellabhängig ist.


Anmelden zum Antworten