• Wieder einmal haben uns unsere Apfeltalker tolle Fotos zur Abstimmung eingesandt. Welches ist Euer Favorit? Stimmt mit ab! Hier geht es zur Abstimmung --> Klick
  • Es ist bereits Apfeltalk-Tradition und wir möchten sie auch in diesem Jahr fortsetzen: Unser Apfeltalk-Weihnachtslogo-Wettbewerb hat begonnen! Gestaltet für uns das Weihnachtsbanner, das im Monat Dezember bis zum Weihnachtsfest unsere Webseite schmücken soll. Lasst Eurer Kreativität freien Lauf! Hier geht es zum Wettbewerb --> Klick

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?