2011-04-07 11 views

Respuesta

156

Uso osascript. Por ejemplo:

osascript -e 'tell app "Finder" to display dialog "Hello World"' 

Reemplazando "Finder" con la aplicación que desee. Tenga en cuenta que si la aplicación está en segundo plano, el diálogo aparecerá también en segundo plano. Para mostrar siempre en primer plano, utiliza las “Eventos del sistema” como la aplicación:

osascript -e 'tell app "System Events" to display dialog "Hello World"' 

Leer más en Mac OS X Hints.

+0

Espera, ¿puedes abreviar la aplicación como aplicación? – JShoe

+0

El motor AppleScript lo reemplazará automáticamente. Simplemente pegue la línea entre las comillas en el Editor de AppleScript, cuando presiona Ejecutar, reemplaza la aplicación automáticamente con la aplicación antes de la ejecución. – Anne

+2

¡DULCE! ¡Gracias de nuevo! – JShoe

52

Si está utilizando cualquier versión de Mac OS X que tiene el centro de notificaciones, puede utilizar la gema terminal-notifier. En primer lugar instalarlo (es posible que necesite sudo):

gem install terminal-notifier 

y luego simplemente:

terminal-notifier -message "Hello, this is my message" -title "Message Title" 

Ver también this OS X Daily post.

+4

Esto es simplemente mucho mejor que las cosas viejas de osascript. – Jonny

+0

Esto parece no funcionar en 10.7.5 (León), al parecer no hay un Centro de notificaciones en él. –

+0

esto le permite reproducir un sonido también, así que ... ¡agradable! –

5

Esto restauraría enfoque a la aplicación anterior y salir de la secuencia de comandos si la respuesta estaba vacío.

a=$(osascript -e 'try 
tell app "SystemUIServer" 
set answer to text returned of (display dialog "" default answer "") 
end 
end 
activate app (path to frontmost application as text) 
answer' | tr '\r' ' ') 
[[ -z "$a" ]] && exit 

Si le indicó a los Eventos del sistema que muestren el cuadro de diálogo, habría una pequeña demora si no se ejecutara antes.

Para obtener documentación sobre diálogo sobre la pantalla, abra el diccionario de adiciones estándar en el Editor AppleScript o ver la AppleScript Language Guide.

37

Use este comando para activar la notificación centro de notificación de la terminal.

osascript -e 'display notification "Lorem ipsum dolor sit amet" with title "Title"' 
2

Y mi 15 ciento. A un trazador de líneas para el etc terminal de mac acaba de establecer el MIN = a lo que sea y un mensaje

MIN=15 && for i in $(seq $(($MIN*60)) -1 1); do echo "$i, "; sleep 1; done; echo -e "\n\nMac Finder should show a popup" afplay /System/Library/Sounds/Funk.aiff; osascript -e 'tell app "Finder" to display dialog "Look away. Rest your eyes"' 

Un ejemplo de bonificación para la inspiración para combinar más comandos; esto pondrá un mac puso a dormir en espera en el mensaje también :) Se necesita el nombre de usuario sudo entonces, una multiplicación como el 60 * 2 durante dos horas va aswell

sudo su 
clear; echo "\n\nPreparing for a sleep when timers done \n"; MIN=60*2 && for i in $(seq $(($MIN*60)) -1 1); do printf "\r%02d:%02d:%02d" $((i/3600)) $(((i/60)%60)) $((i%60)); sleep 1; done; echo "\n\n Time to sleep zzZZ"; afplay /System/Library/Sounds/Funk.aiff; osascript -e 'tell app "Finder" to display dialog "Time to sleep zzZZ"'; shutdown -h +1 -s 
0

Hice un script para solucionar este que es here. No necesita ningún software adicional para esto. Instalación:
brew install akashaggarwal7/tools/tsay
Uso:
sleep 5; tsay

Siéntase libre de contribuir!

+4

"no necesita ningún software adicional ... simplemente instale este" es software adicional. – PRS

+0

@PRS es una secuencia de comandos que ejecuta comandos disponibles para macOS, no un software. –

+1

entonces ¿por qué tengo que instalar brew y tu script? ¿Ves lo que quiero decir? ;) – PRS

Cuestiones relacionadas