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 wunderbaraber 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 wunderbaraber 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.