Skriptfrage: festellen, ob Konsole vorhanden ist
Hallo Leute. Wie kann ich denn in einem Skript feststellen, ob eine Konsole vorhanden ist? Hintergrund: wenn das Skript aus einer Konsole heraus gestartet worden ist, dann soll es dort ganz normal laufen. Wurde es aber im KDE per Mausklick oder per Alt+F2 => Befehl gestartet, dann soll sich das Skript selbst eine Konsole holen, und darin laufen. Geht das, und wenn ja, wie? -- Andre Tann -- 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 Sonntag, 13. Mai 2007 02:31 schrieb Andre Tann:
Hallo Leute.
Wie kann ich denn in einem Skript feststellen, ob eine Konsole vorhanden ist? Hintergrund: wenn das Skript aus einer Konsole heraus gestartet worden ist, dann soll es dort ganz normal laufen. Wurde es aber im KDE per Mausklick oder per Alt+F2 => Befehl gestartet, dann soll sich das Skript selbst eine Konsole holen, und darin laufen. Geht das, und wenn ja, wie?
-- Andre Tann
An den Unterschiedlichen Umgebungsvariablen. Beim Start per Klick oder F2 ist folgende Variable gesetzt: $DESKTOP_STARTUP_ID Aus einer Konsole heraus sind folgende Variablen gesetzt: $KONSOLE_DCOP $KONSOLE_DCOP_SESSION $WINDOWID Gruss Mario -- 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 Sonntag, 13. Mai 2007 08:52 schrieb Mario van der Linde: [...]
An den Unterschiedlichen Umgebungsvariablen. Beim Start per Klick oder F2 ist folgende Variable gesetzt: $DESKTOP_STARTUP_ID
Aus einer Konsole heraus sind folgende Variablen gesetzt: $KONSOLE_DCOP $KONSOLE_DCOP_SESSION $WINDOWID
Gruss Mario
... wenn die Konsole unter KDE läuft, heisst das. Wenn das ganze nicht vom Desktop sondern aus einem Terminal aufgerufen wird, ist keine der Variablen gesetzt... Experimentiere einfach mal ein wenig mit set herum: #!/bin/bash set > /tmp/vars.$$ Lass das mal im Terminal, auf der Konsole und per F2 oder Mausklick laufen und vergleiche die Ausgaben, dann siehst Du weiter... :) Gruss Mario -- 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
Mario van der Linde, Sonntag, 13. Mai 2007 09:11:
Lass das mal im Terminal, auf der Konsole und per F2 oder Mausklick laufen und vergleiche die Ausgaben, dann siehst Du weiter... :)
OK, damit komme ich weiter, danke. Und der letzte Teil meiner Frage - wie macht man es, daß sich per F2 ein Konsolenfenster startet, worin das Skript läuft? -- Andre Tann -- 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 Sonntag, 13. Mai 2007 09:30 schrieb Andre Tann:
Mario van der Linde, Sonntag, 13. Mai 2007 09:11:
Lass das mal im Terminal, auf der Konsole und per F2 oder Mausklick laufen und vergleiche die Ausgaben, dann siehst Du weiter... :)
OK, damit komme ich weiter, danke.
Und der letzte Teil meiner Frage - wie macht man es, daß sich per F2 ein Konsolenfenster startet, worin das Skript läuft?
-- Andre Tann
Nun, wenn Du Alt+F2 drückst, hast Du in dem Dialog unten links einen Button "Einstellungen". Klick da mal drauf und mach bei "Im Terminal starten" ein Häckchen... Gruss Mario -- 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
Mario van der Linde, Sonntag, 13. Mai 2007 09:58:
Nun, wenn Du Alt+F2 drückst, hast Du in dem Dialog unten links einen Button "Einstellungen". Klick da mal drauf und mach bei "Im Terminal starten" ein Häckchen...
Ja, das ist klar. Aber wie kann man es machen, daß sich das Skript selbst ein Terminalfenster holt, und darin läuft. Geht das auch? -- Andre Tann -- 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 Sonntag, 13. Mai 2007 10:21 schrieb Andre Tann:
Mario van der Linde, Sonntag, 13. Mai 2007 09:58:
Nun, wenn Du Alt+F2 drückst, hast Du in dem Dialog unten links einen Button "Einstellungen". Klick da mal drauf und mach bei "Im Terminal starten" ein Häckchen...
Ja, das ist klar. Aber wie kann man es machen, daß sich das Skript selbst ein Terminalfenster holt, und darin läuft. Geht das auch?
-- Andre Tann
Das geht auch. Aber es kommt darauf an, was Du _genau_ willst. Läuft da ein Script als daemon im Hintergrund, was bei bestimmten Ereignissen Dein Script in einem Fenster öffnen soll? Per inittab oder rcfile gestartet? Oder wird Dein Script durch direkte Userinteraktion (Alt+F2, Konsole o.ä.) gestartet? Oder hat cron da die Finger mit im Spiel? Das sind nämlich alles andere Bedingungen, die dann gesondert berücksichtigt werden müssen. Das aufrufende Script bzw. der aufrufende User müssen ein Fenster des X-Servers öffnen können/dürfen, bei cron sind keine Umgebungsvariablen gesetzt, etc. pp. Du siehst, das ist nich pauschal zu beantworten... Gruss Mario -- 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
Mario van der Linde, Sonntag, 13. Mai 2007 10:46:
Das geht auch. Aber es kommt darauf an, was Du _genau_ willst. Läuft da ein Script als daemon im Hintergrund, was bei bestimmten Ereignissen Dein Script in einem Fenster öffnen soll? Per inittab oder rcfile gestartet? Oder wird Dein Script durch direkte Userinteraktion (Alt+F2, Konsole o.ä.) gestartet? Oder hat cron da die Finger mit im Spiel?
Ganz einfach: das Skript soll manchmal händisch direkt in einer Konsole gestartet werden, und manchmal will ich draufklicken, und dann eine Konsole sehen, in der das Skript läuft. Kein cron, keine andere Unartigkeiten, und in meinem X darf ich auch Fenster öffnen. -- Andre Tann -- 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 Sonntag, 13. Mai 2007 11:13 schrieb Andre Tann:
Mario van der Linde, Sonntag, 13. Mai 2007 10:46:
Das geht auch. Aber es kommt darauf an, was Du _genau_ willst. Läuft da ein Script als daemon im Hintergrund, was bei bestimmten Ereignissen Dein Script in einem Fenster öffnen soll? Per inittab oder rcfile gestartet? Oder wird Dein Script durch direkte Userinteraktion (Alt+F2, Konsole o.ä.) gestartet? Oder hat cron da die Finger mit im Spiel?
Ganz einfach: das Skript soll manchmal händisch direkt in einer Konsole gestartet werden, und manchmal will ich draufklicken, und dann eine Konsole sehen, in der das Skript läuft.
Kein cron, keine andere Unartigkeiten, und in meinem X darf ich auch Fenster öffnen.
Hallo Andre, Anders herum wird ein Schuh draus. Dein Script geht immer davon aus, das es in der Konsole läuft. Unter X startest Du zunächst eine Konsole und darin Dein Script. Unter dem KDE musst Du ein Klicki-Icon für den Befehl anlegen. ( Desktop: Rechts-Klick->Neu erstellen->Verknüpfung zum Programm oder im Menü-Editor ) Unter 'Befehl' öffnest Du einfach ein X-Terminal und gibst dem Dein Script: xterm -e /Pfad/zu/Deinem/Script args ... Eine einfache Beschreibung liefert xterm -help Den Befehl kannst Du einfach in einem Terminal aus probieren. Gruß Heiner -- 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)
-
Andre Tann
-
Heiner Kuhlmann
-
Mario van der Linde