AW: Gobale Variable unter Suse 11.0
-----Ursprüngliche Nachricht----- Von: Dr. Jürgen Vollmer [mailto:Juergen.Vollmer@informatik-vollmer.de] Gesendet: Donnerstag, 16. Oktober 2008 15:42 An: Lennart.Mordek@proveo.de Betreff: Re: Gobale Variable unter Suse 11.0
Hallo,
Am Donnerstag 16 Oktober 2008 15:29:14 schrieb Lennart Mordek:
Ich habe ein kleines Problem mit den schönen globalen Variablen. Ich möchte in der Konsole 1 (Befehlsfenseter Nr.1) ein Script laufen lassen, in der Laufzeit soll eine Variable überprüft werden die durch Konsole 2 (Befehlsfenseter Nr.2) gesetzt wurde (2tes Shell-Script). Wenn ich das mit "export VAR" mache klappt das nicht! Wie geht das? Danke im voraus
das geht nicht (so pi mal daumen): Kind-Prozesse können Umgebungsvariablen von Elternprozessen nicht so ändern, daß die Eltern das mit bekommen. In Programmiersprachen würde man vergleichbar sagen, dass das "pass-by-value" übergebn wird.
Wollen 2 Shells miteinander kommunizieren dann kann man das mittels Dateien oder pipes machn.
export var
macht etwas anderes (s. man bash)
Bye Jürgen
Die Scripte sollen nur prüfen ob sie von true auf false gewechselt haben. Mehr nicht. (Shell 1) Script 1 setzt eine Variable (FLASHEN=true) auf true solange ein gewisser Prozess läuft, wenn Prozess beendet (FLASHEN=false) (Shell 2) Script 2 überprüft die Variable (FLASHEN) ob die Variable false ist, wenn nicht so lange prüfen bis das der Fall ist. Dann darf das Script erst weiter machen. Geht das oder nicht? Gruß Lennart -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
Lennart Mordek [16.10.2008 16:08]:
-----Ursprüngliche Nachricht----- Von: Dr. Jürgen Vollmer [mailto:Juergen.Vollmer@informatik-vollmer.de] Gesendet: Donnerstag, 16. Oktober 2008 15:42 An: Lennart.Mordek@proveo.de Betreff: Re: Gobale Variable unter Suse 11.0
Hallo,
Am Donnerstag 16 Oktober 2008 15:29:14 schrieb Lennart Mordek:
Ich habe ein kleines Problem mit den schönen globalen Variablen. Ich möchte in der Konsole 1 (Befehlsfenseter Nr.1) ein Script laufen lassen, in der Laufzeit soll eine Variable überprüft werden die durch Konsole 2 (Befehlsfenseter Nr.2) gesetzt wurde (2tes Shell-Script). Wenn ich das mit "export VAR" mache klappt das nicht! Wie geht das? Danke im voraus das geht nicht (so pi mal daumen): Kind-Prozesse können Umgebungsvariablen von Elternprozessen nicht so ändern, daß die Eltern das mit bekommen. In Programmiersprachen würde man vergleichbar sagen, dass das "pass-by-value" übergebn wird.
Wollen 2 Shells miteinander kommunizieren dann kann man das mittels Dateien oder pipes machn.
export var
macht etwas anderes (s. man bash)
Bye Jürgen
Die Scripte sollen nur prüfen ob sie von true auf false gewechselt haben. Mehr nicht.
(Shell 1) Script 1 setzt eine Variable (FLASHEN=true) auf true solange ein gewisser Prozess läuft, wenn Prozess beendet (FLASHEN=false) (Shell 2) Script 2 überprüft die Variable (FLASHEN) ob die Variable false ist, wenn nicht so lange prüfen bis das der Fall ist. Dann darf das Script erst weiter machen.
Geht das oder nicht?
Oder Nicht. Warum setzt Du eine Variable? Die Shells haben gar nichts miteinander zu tun, die können sich keine Variablen rüberschicken. Die Shell ist da nicht anders als andere Programme, von denen Du auch mehrere Instanzen unabhängig voneinander öffnen kannst. Es ist ja nicht so, dass die eine Shell die andere startet - dazu fändest Du im "Advanced Bash-Scripting Guide" (http://tldp.org/LDP/abs/html/) Infos. Lege doch eine Datei (z. B. /tmp/FLASHEN) an, statt die Variable auf true zu setzen, und lösche sie, wenn die Variable auf false gesetzt werden soll. Ggf. mit den Rechten 0600 anlegen, wenn da niemand anders dran darf, aber könnte ;-) HTH Werner -- Werner Flamme, Abt. WKDV Helmholtz-Zentrum für Umweltforschung GmbH - UFZ Permoserstr. 15 - 04318 Leipzig Tel.: (0341) 235-1921 - Fax (0341) 235-451921 http://www.ufz.de - eMail: werner.flamme@ufz.de -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
Am Donnerstag, 16. Oktober 2008 16:08:05 schrieb Lennart Mordek: Hallo Lennart,
Die Scripte sollen nur prüfen ob sie von true auf false gewechselt haben. Mehr nicht.
(Shell 1) Script 1 setzt eine Variable (FLASHEN=true) auf true solange ein gewisser Prozess läuft, wenn Prozess beendet (FLASHEN=false) (Shell 2) Script 2 überprüft die Variable (FLASHEN) ob die Variable false ist, wenn nicht so lange prüfen bis das der Fall ist. Dann darf das Script erst weiter machen.
Geht das oder nicht?
Warum machst Du das nicht mit _einem_ Script? Solange das Device mit dem Flashen beschaeftigt ist, bekommen doch andere Anwendungen "Zugriff verweigert" usw. Wenn der Flashvorgang beendet ist, kannst Du denn Rueckgabewert abfragen und im Script weitermachen oder auch nicht. So richtig verstehe ich die Logik nicht. PS.: Ansonsten kann ich auch nur das "Zwischenlagern" in Form einer Semaphore empfehlen. MfG Th. Moritz -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
participants (3)
-
Lennart Mordek
-
Thomas Moritz
-
Werner Flamme