script: Systemvariable setzen bzw. lesen.

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
Benutzeravatar
BeS
Moderator
Beiträge: 3236
Registriert: 17.04.2002 18:30:21
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Stuttgart
Kontaktdaten:

script: Systemvariable setzen bzw. lesen.

Beitrag von BeS » 01.01.2004 19:46:31

Hallo,
bei meinem notebook ist die wlan-Karte deaktiviert wenn apm in den suspend modus gegangen ist. Jetzt kann man ja in den apm-Verzeichnissen scripte ablegen um bestimmte Dienste beim aufwachen wieder zu starten. Da bei mir die wlan Karte aber nicht immer aktiv ist wollte ich bei aktivieren der WLAN Karte eine systemweite Variable, z.B. $WLAN=yes, anlegen und dann bei aufwachen fragen ob diese Variable gesetzt ist um dann die WLAN Karte neu zu starten.

Aber wie kann ich aus einem script heraus eine solche Variable setzen und später wieder abfragen?

Danke!
Deine Unterstützung für Freie Software kostet dich nur wenige Minuten: www.fsfe.org/support

Ich spreche von Freier Software!

Benutzeravatar
michas
Beiträge: 380
Registriert: 12.08.2002 20:35:09
Wohnort: München

Beitrag von michas » 01.01.2004 20:15:12

Du möchtest eine Datei für diesen Zweck anlegen, und dann auf Existenz bzw. Inhalt prüfen.

Benutzeravatar
Joghurt
Beiträge: 5244
Registriert: 30.01.2003 15:27:31
Wohnort: Hamburg
Kontaktdaten:

Beitrag von Joghurt » 01.01.2004 20:15:19

Erstelle doch einfach eine Datei /etc/wlan, in die du dann schreibst

Code: Alles auswählen

WLAN=yes (oder no)
und source die Datei in dein Skript ein, etwa so

Code: Alles auswählen

#!/bin/sh
if test -e /etc/wlan; then
  . /etc/wlan
else
  # das hier ist natürlich optional
  logger -p user.info /etc/wlan missing, assuming no
  WLAN=no
fi

if test x$WLAN == xyes; then
  ...
fi

Benutzeravatar
BeS
Moderator
Beiträge: 3236
Registriert: 17.04.2002 18:30:21
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Stuttgart
Kontaktdaten:

Beitrag von BeS » 01.01.2004 20:32:17

Hallo,

erstmal Danke euch beiden für die schnelle Antwort :)
michas hat geschrieben:Du möchtest eine Datei für diesen Zweck anlegen, und dann auf Existenz bzw. Inhalt prüfen.
Das habe ich mir auch schon überlegt. Nur existiert die Datei dann immer, auch wenn ich beim nächstenmal die wlan Karte nicht aktiviert habe, deswegen dachte ich eine Systemvariable wäre da ganz praktisch da sie nach einem Neustart nichtmehr da ist.

Ansonsten müsste ich halt noch ein script schreiben, damit die Datei beim shutdown wieder gelöscht wird. So eine Systemvariable wäre aber schon etwas schöner, gibts da keine Möglichkeit?
Deine Unterstützung für Freie Software kostet dich nur wenige Minuten: www.fsfe.org/support

Ich spreche von Freier Software!

Benutzeravatar
michas
Beiträge: 380
Registriert: 12.08.2002 20:35:09
Wohnort: München

Beitrag von michas » 01.01.2004 21:05:12

Nein, "globale" Umgebungsvariablen gibt es nicht.
Wenn du eine Variable setzt gilt sie nur dür die aktuelle Shell, bzw auch für Kinder davon. (export)
Dein apm-deamon kennt nur die Variablen, wie sie waren, als er gestartet wurde.

/etc/rc* ist dein Freund. :)

Benutzeravatar
BeS
Moderator
Beiträge: 3236
Registriert: 17.04.2002 18:30:21
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Stuttgart
Kontaktdaten:

Beitrag von BeS » 01.01.2004 22:02:14

Hallo,
ich habe es jetzt wie von dir empfohlen gemacht, ein start-stop script das bei starten der wlan-Karte eine Datei erstellt und beim stoppen diese wieder löscht.
Mit dem script in /etc/apm/resume.d prüfe ich dann ob die Datei existiert und aktiviere die wlan Karte wieder.
Deine Unterstützung für Freie Software kostet dich nur wenige Minuten: www.fsfe.org/support

Ich spreche von Freier Software!

Antworten