• Das kreative Thema des Monats Oktober wird vor allem diejenigen unter Euch besonders ansprechen, denen Do-it-yourself quasi im Blut liegt. Zeigt uns Eure Improvisationskünste oder fotografiert, was andere Leute sich so im Alltag zusammengestrickt haben. --> Zum Mitmachen bitte hier klicken

Fallunterscheidung ob mit Terminal oder über Finder geöffnet

Kaffi

Golden Delicious
Registriert
05.05.14
Beiträge
11
Hallo

Wollte herausfinden ob man folgende Fallunterscheidung machen kann. Das Script soll sich je nachdem ob das Script über Terminal(als Konsolen aufruf) oder Finder (als Droplet) gestartet worden ist anders verhalten.


Ich habe es probiert über process liste zu selektieren, jedoch wird mir jeweils nur Terminal.app in der Liste angezeigt jedoch nicht die Finder.app.

Kann mir jemand einen Hinweis geben?

Danke im Voraus.

Gruss
Kevin
 
Code:
do shell script "/usr/bin/tty"
...liefert dir für einen interaktiven osascript-Aufruf die aktuelle Terminalsitzung im Format "/dev/ttys001" zurück, für einen Aufruf über die GUI dagegen (je nach Methode) entweder die Ausgabe "/dev/console" oder den Fehler "not a tty".
 
  • Like
Reaktionen: Kaffi
Danke für die gute Idee, jedoch kann ich das ganze als Error zurück. Ich wollte nun den Output in einen String umwandeln und die Fallunterscheidung mit einem if -Statement machen, doch es scheint es lässt sich nicht umwandeln.

Gibt es ein ErrorToString Methode oder sowas, oder muss ich das Ganze mit try und catch machen?
 
Mach so simple Sachen doch einfach gleich im Shellbefehl.
Code:
do shell script "/usr/bin/tty 2>&1 | /usr/bin/grep -q /dev/tty && echo terminal || echo gui"
Da wird jetzt nur noch einer der Strings "terminal" oder "gui" zurückkommen, sonst nichts.
 
Wenn es nur um den Unterschied zwischen normalem Aufruf und Droplet geht, dann kannst du doch unterschiedliche Dinge in den Run- und den open-Handler schreiben?