...herausfinden ob grafisch, shell, oder nicht interaktiv.

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
Benutzeravatar
chabayo
Beiträge: 930
Registriert: 17.08.2005 07:44:33
Lizenz eigener Beiträge: Artistic Lizenz

...herausfinden ob grafisch, shell, oder nicht interaktiv.

Beitrag von chabayo » 07.07.2009 08:55:59

Wenn ich jetzt zum Beispiel die Uhrzeit wissen will geb ich ein date.

Moechte ich die aber auf dem Desktop wissen druecke ich mal Alt-Tab, und geb ein date - zu dumm waer auch zu schoen, aber das geht nicht weil date ja nicht weiss das es nicht in einem Terminal laeuft; so mal die momentane Variante eines Problems vor dem ich nicht zum ersten mal steh.

Was kann ich tun um festzustellen ob die Ausgabe im Rahmen von GTK, in eine Shell, oder gar nicht (weil Pipe in nem Script) geschehen soll!?

In der distributional .bashrc steht ja sowas, aber hatte schon mal nicht funktioniert fuer meinen Fall, und das hab ich mir gemerkt:

Code: Alles auswählen

# If not running interactively, don't do anything
[ -z "$PS1" ] && return
Watt about the non-digital!?

Spasswolf
Beiträge: 3472
Registriert: 30.11.2005 10:32:22
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Wald

Re: ...herausfinden ob grafisch, shell, oder nicht interaktiv.

Beitrag von Spasswolf » 07.07.2009 10:25:32

Im graphischen Modus könntest du

Code: Alles auswählen

xterm date
benutzen.

yeti

Re: ...herausfinden ob grafisch, shell, oder nicht interaktiv.

Beitrag von yeti » 07.07.2009 11:42:58

Spasswolf hat geschrieben:Im graphischen Modus könntest du

Code: Alles auswählen

xterm date
benutzen.
Und dann ganz schnell gucken bevor das xterm wieder verschwindet?

yeti

Re: ...herausfinden ob grafisch, shell, oder nicht interaktiv.

Beitrag von yeti » 07.07.2009 11:49:47

"test" kann angeblich mit Option "-t" feststellen, ob ein Filedeskriptor ein Terminal darstellt... hab ich noch nie in der BASH benutzt aber Äquivalentes in Python, z.B. um ESC-Sequenzen nur auf Terminals zu schicken... spiel einfach mal 'n bissl damit rum...

"$DISPLAY" ist nicht leer, wenn innerhalb des GUIs gewuppt wird...

Spasswolf
Beiträge: 3472
Registriert: 30.11.2005 10:32:22
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Wald

Re: ...herausfinden ob grafisch, shell, oder nicht interaktiv.

Beitrag von Spasswolf » 07.07.2009 16:03:02

yeti hat geschrieben:
Spasswolf hat geschrieben:Im graphischen Modus könntest du

Code: Alles auswählen

xterm date
benutzen.
Und dann ganz schnell gucken bevor das xterm wieder verschwindet?
Bei xfce hat das funktioniert ...

Edit: Ne, doch nicht, alles Mist ...
Zuletzt geändert von Spasswolf am 07.07.2009 19:13:30, insgesamt 1-mal geändert.

Benutzeravatar
chabayo
Beiträge: 930
Registriert: 17.08.2005 07:44:33
Lizenz eigener Beiträge: Artistic Lizenz

Re: ...herausfinden ob grafisch, shell, oder nicht interaktiv.

Beitrag von chabayo » 07.07.2009 16:36:30

yeti hat geschrieben:"test" kann angeblich mit Option "-t" feststellen, ob ein Filedeskriptor ein Terminal darstellt... hab ich noch nie in der BASH benutzt aber Äquivalentes in Python, z.B. um ESC-Sequenzen nur auf Terminals zu schicken... spiel einfach mal 'n bissl damit rum...

"$DISPLAY" ist nicht leer, wenn innerhalb des GUIs gewuppt wird...
...hatte das bis vor ein paar Minuten fuer ein herausragende Idee gehalten, aber wenn ich denn in der Bash dann mal kurz ein date eingeben taete wuerde mir ein Popup ins Gesicht springen und da waers denn schon wieder grenzwertig.

Haette die Loesung aber schon fast notiert.

Hintergedanke war schon gewesen die sourcen von date zu ziehen und dann im Sourcecode kurz ne Fallunterscheidung einzubauen welche denn in ein Sub verzweigen koennte...soweit mal zur Klarstellung.
Watt about the non-digital!?

Antworten