2009-12-11 12 views
10

Czy jest jakiś sposób w bashu na komputerze Mac, aby narysować ładne pole informacyjne, które wyświetla prostą wiadomość, taką jak "zapisz wszystkie pliki do/Users/......"Bash Script na komputerze Mac tworzy wyskakujące okno informacyjne

+0

Moja pierwsza myśl to AppleScript, ale mam wrażenie, że nie można tego zrobić w ten sposób. To polecenie: okno dialogowe "osascript -e" \ "hello \" "" daje błąd "Brak interakcji użytkownika". Zobacz http://lists.apple.com/archives/applescript-studio/2002/May/msg00099.html – Joe

+0

Tak, masz rację - kluczem jest powiedzieć "Zdarzenia systemowe", aby wyświetlić okno dialogowe dla ciebie;) – Shirkrin

+0

Dziękuję Ci! Jestem pewien, że wiedza przyda się pewnego dnia. – Joe

Odpowiedz

17

Możesz uruchomić fragmenty skryptu jabłkowego ze skryptów bash. Prosty popup będzie wyglądać następująco:

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

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

EOF 

To będzie karmić AppleScript między tagami EOF do osascript i wykonać go
(powodując popup Hello World).

+3

'osascript' został wykonany proces elementu interfejsu użytkownika w 10.9, więc możesz teraz używać tylko okno dialogowe" osascript -e "" "" zamiast "osascript -e" aplikacja tell "System Events", aby wyświetlić okno dialogowe "" " . – user495470

0

Alternatywą dla osascriptowych "zdarzeń systemowych" byłoby zainstalowanie cocoaDialog.

CocoaDialog ma tę wadę, że musi być zainstalowany, ale wydaje się być bardziej elastyczny niż "Zdarzenia systemowe".

Licencja jest na licencji GPL, więc można ją swobodnie rozpowszechniać, ponieważ jest to osobna aplikacja.

(osascript zaśmiecał mój terminal komunikatami o błędach (przynajmniej pod Lion) i z wartościami zwracanymi, nie pozwalał mi robić wyskakujących okienek z limitami czasu i wydawało się, że wymaga specyficznego cytowania, co utrudniało użycie zmiennych w teksty.)

Powiązane problemy