Variablen aus Shell-Skript setzen

Hallo Leute!

Wie kann ich aus einem Shell-Skript heraus Variablen setzen?

Führe ich mit bash als Shell ein Skript aus, welches u.a. die Zeilen

export II_SYSTEM=/home/ingres/II
PATH="$II_SYSTEM/ingres/bin:blush:II_SYSTEM/ingres/utility:blush:PATH"
export PATH

enthält, so ist nach Ablauf des Skripts keine der Variablen gesetzt.
Tippe ich die Befehle direkt ein, so funktioniert alles einwandfrei.

Wie kann ich Variablen für die Dauer einer Session durch ein Shell Skript setzen?

CU
Markus

Wenn die Variablen stets zur Verfuegung stehen sollen, kannst Du die entsprechenden
Befehle in der Datei .bashrc eintragen (Du
scheinst bash zu benuten (export)). Ansonsten starte doch einfach aus dem
Script heraus eine neue Shell (aber bitte
vorsicht mit Rekursionen), diese uebernimmt dann die neuen Parameter.

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Hi Markus,

wenn Du ein Shell-Skript aufrufst, so wird eine Subshell gestartet, in welcher das Script abgearbeitet wird. In dieser Shell werden die Variablen gesetzt und auch nach unten weitervererbt. Ist das Script abgearbeitet, so stirbt die Shell und mit ihr die neuen Variablen. Eine Vererbung nach oben findet nicht statt.

Bei der C-Shell gibt es den Befehl

source scriptname

der verhindert, daß eine neue Shell geöffnet wird. Die Variablen bleiben dann nach Ablauf des Scripts erhalten. Schau doch einfach mal in die Manpages (apropos source)!

Gruß
Ted

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Danke!

und mit ihr die neuen Variablen. Eine
Vererbung nach oben findet nicht statt.

Bei der C-Shell gibt es den Befehl

source scriptname

der verhindert, daß eine neue Shell
geöffnet wird. Die Variablen bleiben dann
nach Ablauf des Scripts erhalten. Schau
doch einfach mal in die Manpages (apropos
source)!

Das hätten die Leute von Computer Associates aber auch schreiben können :wink:
Die Installationsanleitung für Ingres II ist ansonsten super detailliert.

Danke für den Tip!

CU
Markus

Danke!

Wenn die Variablen stets zur Verfuegung
stehen sollen, kannst Du die
entsprechenden
Befehle in der Datei .bashrc eintragen
(Du
scheinst bash zu benuten (export)).

Habe die Variablen jetzt in .bashrc gesetzt.
Computer Associates empfiehlt bash als shell für den ingres-Benutzer.
Jetzt funktioniert das export einwandfrei und das sogar schon „automatisch“ beim login.
Damit ist mein Ingres jetzt betriebsbereit. Danke für den Tip!

CU
Markus

Das Sourcen in der KornShell funktioniert mit einem „.“ Aleso wenn dein Script den Namen RUN hat dann rufst du . RUN auf, dann wird das Script gesourced…

Alex