1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies. Weitere Informationen

Shellscript aus OS X per Shortcut öffnen?

Dieses Thema im Forum "Unix & Terminal" wurde erstellt von Peter/Peet, 13.12.07.

  1. Peter/Peet

    Peter/Peet Empire

    Dabei seit:
    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.
     
  2. quarx

    quarx Hadelner Sommerprinz

    Dabei seit:
    17.04.05
    Beiträge:
    8.541
    Probier doch mal OnMyCommand.

    Alternative: Stopfe das Shellskript in ein Programm-Bundle mit passender Info.plist.

    Edith fand auch noch diesen aktuellen Thread und insbesondere Pashua ganz toll. ;)
     
  3. Peter/Peet

    Peter/Peet Empire

    Dabei seit:
    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
     
  4. Rastafari

    Rastafari Golden Noble

    Dabei seit:
    10.03.05
    Beiträge:
    17.896
    Benamse das Skript einfach mit dem Suffix *.command
    Dann darfst du es doppelklicken...
     
  5. Peter/Peet

    Peter/Peet Empire

    Dabei seit:
    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.
     

Diese Seite empfehlen