• 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

Shellscript aus OS X per Shortcut öffnen?

Peter/Peet

Empire
Registriert
29.06.07
Beiträge
89
Hallo zusammen,

ich sitze gerade an folgendem Problem. Ich habe ein Script geschrieben um Messdaten aufzunehmen. Wenn ich also im Terminal bin habe ich mir ein alias erstellt über den ich Systemweit dieses Script aufrufen kann.

Der vorangehende Satz beschreibt schon mein Problem, ich muss immer auf den Terminal wechseln. Habe mittlerweile zwar Visor laufen, aber ich bräuchte das Script am besten direkt unter/aus der OS X-Oberfläche.

Kann man bzw. wie kann man einen Shortcut definieren, über den entweder Terminal oder direkt das Script aus der Aquaoberfläche gestartet wird. (nach Möglichkeit ohne ein extra Programm zu verwenden)

Vielen Dank im Voraus, Peter.
 

Peter/Peet

Empire
Registriert
29.06.07
Beiträge
89
Super, der Link ins Forum ist klasse, hätte ich sonst nicht gefunden. Vielen Dank dafür.

Muss ich mir über das Wochenende genau ansehen, auf die Idee eine Art Programm zu schreiben der mir eine Tastenkombination abfängt und umsetzt hatte ich auch schon gedacht. Das hätte den Vorteil, dass ich dann auch zeitliche Kopplungen erstellen könnte. Leider habe ich noch keine Ahnung wie ich das hinbekomme, aber trotzdem erstmal Danke.

LG
 

Peter/Peet

Empire
Registriert
29.06.07
Beiträge
89
Hallo zusammen,
hier eine kleine Zusammenfassung, also ShellScript ausführen, meine Erkenntnisse:

1) umbenennen in script.command funktioniert mit Doppelklicken (dran denken das Script ausführbar zu machen > chmod)

2) In Verbindung mit AppleScript starten: do shell script "Name des Script" (Funktioniert soweit dann schon. Kann man dann als Programm abspeichern und auch doppelklicken.)

3) Ich habe mir auch den Automator zu Rate gezogen:
- Zuerst blende ich ein Fenster ein, das mich Fragt ob ich Messdaten aufnehmen möchte (Cancel/OK)
- Dann führe ich über "Run Shell Script" mein Script aus um die Daten aufzunehmen
- Danach rufe ich über "Run Workflow" die selbe Workflow Datei wieder auf.
Ergo, ich muss nur noch immer auf OK klicken um die Daten zu bekommen.

4) Dann habe ich mal weiter geforscht und habe am Ende das Problem ganz anders gelöst:
Man gehe in den PropertyListEditor und erstelle sich in etwa dies hier:

Root
__Label String org.peter.messdaten
__ProgramArguments Array
_____0 String ~/Documents/Messdaten.command
__RunAtLoad Boolean Yes
__StartInterval Number 5

Das abgespeichert unter ~/Library/LaunchAgents/messdaten.xml (damit es automatisch geladen wird wenn ich mich mit dem Account einlogge mit dem ich die Datenerhebungen mache). Lässt sich dann aber auch manuell laden mit "launchctl load ~/Library/LaunchAgents/messdaten.xml" und mit "launchctl unload ~/Library/LaunchAgents/messdaten.xml" wieder aus der "launchctl list" entfernt. Wenn ich also die Datei lade nimmt er sofort die Messdaten (wegen RunAtLoad) auf und anschließend alle 5 Sekunden erneut (StartInterval). Das Array spielt in meinem Fall keine Rolle, aber ich hatte mir das aus einem Beispiel abgeschaut und da wurde ein Befehl mit mehreren Parametern aufgerufen, die dann im Array abgelegt waren. Habe das einfach so gelassen.

Im Beispiel lautete es:
___ProgramArguments Array
_____0 String /usr/bin/say
_____1 String -v
_____2 String Whisper
_____3 String "hallo Du da"

(Quelle: Unix für MacOS X-Anwender, Kai Surrendorf)

Funktioniert jetzt zeitabhängig, aber reicht für meine Anforderungen völlig aus. Habe mir jetzt den unload Befehl als Alias definiert um es zu stoppen und load um es neu zu starten. Vielleicht hilft das ja wem weiter.

LG, Peter.