env-Variablen aus Script in der /bin/ksh setzen

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
Benutzeravatar
Duff
Beiträge: 6321
Registriert: 22.03.2005 14:36:03
Wohnort: /home/duff

env-Variablen aus Script in der /bin/ksh setzen

Beitrag von Duff » 09.05.2006 20:28:50

Hallo,

ich habe mal eine Frage zu einem Script, welches unter /bin/ksh laufen soll (HP-UX).

Es handelt sich um ein einfaches Script, mit dem nur die CVSROOT-Variable für cvs gesetzt werden soll. Zu Beginn des Scriptes wird lediglich überprüft, ob der user seinen usernamen eingegeben hat oder nicht und dann einen wählen muss.
Zum Schluß des Scriptes soll mit

Code: Alles auswählen

export CVSROOT=":......${username}:......."
die Umgebungsvariable exportiert werden.
Wenn ich ans Ende des Scriptes ein echo $CVSROOT setze, wird die Variable CVSROOT auch mit dem richtigen usernamen ausgegeben.

Wenn ich dann alllerdings ein

Code: Alles auswählen

env|grep CVSROOT
mache, wird die Variable für verschiedene User-Eingaben im Script nicht verändert. Für ich jedoch ein

Code: Alles auswählen

export CVSROOT=":......${username}:......."
(genauso wie im Script; nur den $username durch einen usernamen ersetzt) aus, wird die CVSROOT-Umgebungsvariable korrekt gesetzt.

Weiß nicht, was ich in der ksh anders machen muss. In der Shell zu Hause kann ich die Umgebungsvariablen ohne Probleme aus einem Script setzen.
Oh, yeah!

gms
Beiträge: 7798
Registriert: 26.11.2004 20:08:38
Lizenz eigener Beiträge: MIT Lizenz

Beitrag von gms » 09.05.2006 21:00:30

Duff hat geschrieben:Weiß nicht, was ich in der ksh anders machen muss. In der Shell zu Hause kann ich die Umgebungsvariablen ohne Probleme aus einem Script setzen.
Auch bei dir zu Hause wird das nur funktionieren, wenn du dein Script entweder mit

Code: Alles auswählen

. deinscript
oder mit

Code: Alles auswählen

source deinscript
aufrufst

Gruß
gms

Benutzeravatar
Duff
Beiträge: 6321
Registriert: 22.03.2005 14:36:03
Wohnort: /home/duff

Beitrag von Duff » 09.05.2006 21:08:02

OK, habe es zu Hause in der .bashrc eingefügt.

Auf der Arbeit rufe ich das Script so auf

Code: Alles auswählen

./script
und in die erste Zeile sieht so aus
#!/bin/ksh
...
Oh, yeah!

Benutzeravatar
Duff
Beiträge: 6321
Registriert: 22.03.2005 14:36:03
Wohnort: /home/duff

Beitrag von Duff » 10.05.2006 19:54:20

So, es funktioniert jetzt endlich.
Juhu!!!


Habe aus dem Script die She-Bang-Zeile entfernt und musste noch in meinem Script den Aufruf usage $* rausnehmen, da die ksh dies anmekerte.

Kann das Scripte dann so ausführen:

Code: Alles auswählen

 . SettingsCVSROOT.sh
Nochmals Danke für die Hilfe!
Oh, yeah!

Antworten