hallo liste, ich rufe aus einem shell-script meine datenbank (informix) auf. über eine eingabe kann ich wählen welche datenbank ich möchte. technisch funktioniert das so, das eine shell variable gesetzt wird, die dann von der datenbank abgefragt wird. vom prompt auf funktionier das ganz prima. vom script aus nicht. trotz export der variable. hab ich da irgendwo einen denkfehler? cu roland --------------------------------------------------------------------- To unsubscribe, e-mail: suse-linux-unsubscribe@suse.com For additional commands, e-mail: suse-linux-help@suse.com
Hallo, On Tue, Nov 07, 2000 at 18:23 +0100, Roland Kruggel wrote:
ich rufe aus einem shell-script meine datenbank (informix) auf. über eine eingabe kann ich wählen welche datenbank ich möchte. technisch funktioniert das so, das eine shell variable gesetzt wird, die dann von der datenbank abgefragt wird.
vom prompt auf funktionier das ganz prima. vom script aus nicht. trotz export der variable. hab ich da irgendwo einen denkfehler?
Der Denkfehler wird oft gemacht: Mit export veränderst Du die Umgebung des akutellen Prozesses und aller Kindprozesse. Das heißt, dass, wenn Du das in der Shell eingibst, die Umgebung dieser Shell verändert und automatisch alle anderen Programme, die von dieser Shell aufgerufen werden, die neue Umgebung bekommen, quasi von Eltern nach Kind vererbt. Ein Skript ruft eine neue Shell auf, so dass nur die Umgebung dieses Kindprozesses _nicht_ aber die Umgebung des Elternprozesses, also die Shell, von der Du das Skript aufgerufen hast, verändert wird. Wie man das Problem jetzt am besten löst weiß ich auch nicht. Gruß, Bernhard -- (o_ LINUX - WeilŽs Betriebssystem eben ned wurtscht is (/)(o_ _o)_0) Infos zu dieser Mailingliste (als Ergänzung zur FAQ): //\ (\)/\\ http://home.t-online.de/~f.walle/ V_/_ _\_V Homepage: http://www.linuxinfopage.de * Tux# 171705 --------------------------------------------------------------------- To unsubscribe, e-mail: suse-linux-unsubscribe@suse.com For additional commands, e-mail: suse-linux-help@suse.com
Am Dienstag, 7. November 2000 19:29 schrieb Bernhard Walle:
vom prompt auf funktionier das ganz prima. vom script aus nicht. trotz export der variable. hab ich da irgendwo einen denkfehler?
Der Denkfehler wird oft gemacht:
Mit export veränderst Du die Umgebung des akutellen Prozesses und aller Kindprozesse. Das heißt, dass, wenn Du das in der Shell eingibst, die Umgebung dieser Shell verändert und automatisch alle anderen Programme, die von dieser Shell aufgerufen werden, die neue Umgebung bekommen, quasi von Eltern nach Kind vererbt.
ja. ist klar. wenn ich in einem script eine variable setzte ist sie nach verlassen des scriptes wieder weg. wenn ich aus diesem script herraus ein anderes programm starte hat die gesetzte variable noch gültigkeit und wird an das gerufen programm weitergegeben. habe ich immer gedacht. ist in meinem fall aber nicht so. es bleibt der inhalt der variable gültig der _vor_ dem starten des scriptes da war. bspl: export VAR=1 cript starten. export VAR=2. progr aufrufen. programm verarbeitet VAR=1. programm verlassen. scrip ende. echo $VAR 1 cu roland --------------------------------------------------------------------- To unsubscribe, e-mail: suse-linux-unsubscribe@suse.com For additional commands, e-mail: suse-linux-help@suse.com
Hi, * On Tuesday, November 07, 2000 at 19:54, Roland Kruggel wrote:
wenn ich in einem script eine variable setzte ist sie nach verlassen des scriptes wieder weg. wenn ich aus diesem script herraus ein anderes programm starte hat die gesetzte variable noch gültigkeit und wird an das gerufen programm weitergegeben. habe ich immer gedacht. ist in meinem fall aber nicht so. es bleibt der inhalt der variable gültig der _vor_ dem starten des scriptes da war.
bspl:
export VAR=1
script starten. export VAR=2. progr aufrufen. programm verarbeitet VAR=1. programm verlassen. scrip ende.
echo $VAR 1
Starte das Skript mit ". /pfad/zum/skript" (Wichtig: Vorne ein Punkt und danach ein _Leerzeichen_), dann führt die aktuelle Shell das Skript aus - ansonsten wird eine neue Shell aufgemacht und das Skript von ebendieser ausgeführt. Adalbert --------------------------------------------------------------------- To unsubscribe, e-mail: suse-linux-unsubscribe@suse.com For additional commands, e-mail: suse-linux-help@suse.com
* Bernhard Walle schrieb am 07.Nov.2000:
Mit export veränderst Du die Umgebung des akutellen Prozesses und aller Kindprozesse. Das heißt, dass, wenn Du das in der Shell eingibst, die Umgebung dieser Shell verändert und automatisch alle anderen Programme, die von dieser Shell aufgerufen werden, die neue Umgebung bekommen, quasi von Eltern nach Kind vererbt.
Ein Skript ruft eine neue Shell auf, so dass nur die Umgebung dieses Kindprozesses _nicht_ aber die Umgebung des Elternprozesses, also die Shell, von der Du das Skript aufgerufen hast, verändert wird.
Wie man das Problem jetzt am besten löst weiß ich auch nicht.
Indem Du das skript mit . skript aufrufst. Denn dann wird keine neue shell generiert Bernd -- Bei Fragen an die Liste erst mal nachschauen, ob es diese Frage nicht schon einmal gegeben hat. Ein Archiv der Liste findest Du auf: http://lists.suse.com/archives/suse-linux |Zufallssignatur 7 --------------------------------------------------------------------- To unsubscribe, e-mail: suse-linux-unsubscribe@suse.com For additional commands, e-mail: suse-linux-help@suse.com
Wie man das Problem jetzt am besten löst weiß ich auch nicht.
Indem Du das skript mit . skript aufrufst. Denn dann wird keine neue shell generiert
geht nicht. ich kann dem kunden noch beibringen ein programm mir 'name' aufzurufen, aber mit '. name' ? - das klappt nie. zumal 'name' in bestimmten situationen ja auch funktioniert. cu roland --------------------------------------------------------------------- To unsubscribe, e-mail: suse-linux-unsubscribe@suse.com For additional commands, e-mail: suse-linux-help@suse.com
On Mit, 08 Nov 2000, Roland Kruggel wrote:
Wie man das Problem jetzt am besten löst weiß ich auch nicht.
Indem Du das skript mit . skript aufrufst. Denn dann wird keine neue shell generiert
geht nicht. ich kann dem kunden noch beibringen ein programm mir 'name' aufzurufen, aber mit '. name' ? - das klappt nie. zumal 'name' in bestimmten situationen ja auch funktioniert.
Und wenn Du einen alias definierst... Dadurch wird ja keine neue Shell gestartet... Gruß Christoph -- Christoph Maurer - http://www.christophmaurer.de Jülicher Str. 80 - 52070 Aachen mailto:christoph-maurer@gmx.de - Tux# 194235 --------------------------------------------------------------------- To unsubscribe, e-mail: suse-linux-unsubscribe@suse.com For additional commands, e-mail: suse-linux-help@suse.com
Hallo,
Hallo,
On Tue, Nov 07, 2000 at 18:23 +0100, Roland Kruggel wrote:
ich rufe aus einem shell-script meine datenbank (informix) auf. über eine eingabe kann ich wählen welche datenbank ich möchte. technisch funktioniert das so, das eine shell variable gesetzt wird, die dann von der datenbank abgefragt wird.
vom prompt auf funktionier das ganz prima. vom script aus nicht. trotz export der variable. hab ich da irgendwo einen denkfehler?
Der Denkfehler wird oft gemacht:
Mit export veränderst Du die Umgebung des akutellen Prozesses und aller Kindprozesse. Das heißt, dass, wenn Du das in der Shell eingibst, die Umgebung dieser Shell verändert und automatisch alle anderen Programme, die von dieser Shell aufgerufen werden, die neue Umgebung bekommen, quasi von Eltern nach Kind vererbt.
Ein Skript ruft eine neue Shell auf, so dass nur die Umgebung dieses Kindprozesses _nicht_ aber die Umgebung des Elternprozesses, also die Shell, von der Du das Skript aufgerufen hast, verändert wird.
Wie man das Problem jetzt am besten löst weiß ich auch nicht.
Wenn keine neue Shell aufgemacht wird, es haengt aber von der Shell aus der der Skript aufgerufen wird, klappt es hervorragend. Es ist naemlich nicht immer notwendig eine neue Shell aufzurufen um einen Shell-Skript auszufuehren. MfG, Jean-Gabriel --------------------------------------------------------------------- To unsubscribe, e-mail: suse-linux-unsubscribe@suse.com For additional commands, e-mail: suse-linux-help@suse.com
participants (6)
-
adalbert.list@lopez.at
-
B.Brodesser@online-club.de
-
Bernhard.Walle@gmx.de
-
christoph-maurer@gmx.de
-
jeangabriel.duquesnoy@planet-interkom.de
-
rkruggel@coordt-edv.de