• Apfeltalk ändert einen Teil seiner Allgemeinen Geschäftsbedingungen (AGB), das Löschen von Useraccounts betreffend.
    Näheres könnt Ihr hier nachlesen: AGB-Änderung
  • Viele hassen ihn, manche schwören auf ihn, wir aber möchten unbedingt sehen, welche Bilder Ihr vor Eurem geistigen Auge bzw. vor der Linse Eures iPhone oder iPad sehen könnt, wenn Ihr dieses Wort hört oder lest. Macht mit und beteiligt Euch an unserem Frühjahrsputz ---> 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
 

Rastafari

deaktivierter Benutzer
Registriert
10.03.05
Beiträge
18.150
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

Kaffi

Golden Delicious
Registriert
05.05.14
Beiträge
11
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?
 

Rastafari

deaktivierter Benutzer
Registriert
10.03.05
Beiträge
18.150
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.
 

Pill

Adams Parmäne
Registriert
07.07.12
Beiträge
1.310
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?