2009-12-11 5 views
10

Gibt es einen Weg in Bash auf einem Mac, um eine hübsche Infobox, die eine einfache Meldung wie "Bitte speichern Sie alle Dateien an/Benutzer/......"Bash Script auf einem Mac erstellt ein Info-Popup

zeigt
+0

Mein erster Gedanke war AppleScript, aber ich habe das Gefühl, dass es so nicht möglich ist. Dieser Befehl: 'osascript -e 'zeigt den Dialog" Hallo \ "" 'an und gibt den Fehler" Keine Benutzerinteraktion erlaubt ". Siehe http://lists.apple.com/archives/applescript-studio/2002/May/msg00099.html – Joe

+0

Ja, Sie haben Recht - der Schlüssel ist, "Systemereignisse" zu sagen, um den Dialog für Sie anzuzeigen;) – Shirkrin

+0

Vielen Dank! Ich bin sicher, dass dieses Wissen eines Tages nützlich sein wird. – Joe

Antwort

17

Sie können Fragmente von AppleScript aus Ihren Bash-Skripten ausführen. Ein einfaches Popup würde wie folgt aussehen:

#!/bin/bash 
/usr/bin/osascript <<-EOF 

    tell application "System Events" 
     activate 
     display dialog "Hello world" 
    end tell 

EOF 

Dies wird das Applescript zwischen dem EOF-Tags-Feed osascript und führen Sie es
(was zu einer Hallo Welt Popup).

+3

'osascript' wurde in 10.9 zu einem UI-Element Prozess gemacht, so dass Sie jetzt nur' osascript -e 'Display-Dialog ""' statt "osascript -e" der App "System Events" verwenden können, um den Dialog "" 'anzuzeigen . – user495470

0

Eine Alternative zu osascript "System Events" wäre die Installation cocoaDialog.

Kakaodialog hat den Nachteil, dass es installiert werden muss, aber es scheint viel flexibler als die "Systemereignisse" zu sein.

Die Lizenz ist GPL, also können Sie sie frei verteilen, da es eine separate Anwendung ist.

(osascript hatte mein Terminal mit Fehlermeldungen (zumindest unter Lion) und mit Rückgabewerten, ließ ich Popups mit Timeouts nicht, und schien spezifische Zitate zu verlangen, die es schwierig machten, Variablen in der Texte.)