Respuestas:
Utilice osascript
. Por ejemplo:
osascript -e 'tell app "Finder" to display dialog "Hello World"'
Reemplazo de "Finder" con cualquier aplicación que desee. Tenga en cuenta que si esa aplicación está en segundo plano, el cuadro de diálogo también aparecerá en segundo plano. Para mostrar siempre en primer plano, use "Eventos del sistema" como aplicación:
osascript -e 'tell app "System Events" to display dialog "Hello World"'
Leer más en Mac OS X Hints .
Utilice este comando para activar la notificación del centro de notificaciones desde el terminal.
osascript -e 'display notification "Lorem ipsum dolor sit amet" with title "Title"'
Si está usando cualquier versión de Mac OS X que tenga el Centro de notificaciones, puede usar la gema de notificador de terminal . Primero instálelo (puede que lo necesite sudo
):
gem install terminal-notifier
y luego simplemente:
terminal-notifier -message "Hello, this is my message" -title "Message Title"
Ver también este post OS X Daily .
brew install terminal-notifier
también funciona si prefieres prepararla.
Esto restauraría el foco a la aplicación anterior y saldría del script si la respuesta estuviera vacía.
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 dijo a System Events que mostrara el diálogo, habría un pequeño retraso si no se estaba ejecutando antes.
Para obtener documentación sobre el cuadro de diálogo de visualización, abra el diccionario de adiciones estándar en AppleScript Editor o consulte la Guía del lenguaje AppleScript .
Con AppleScript :
display notification "Notification text" with title "Notification Title" subtitle "Notification sub-title" sound name "Submarine"
Con terminal / bash y osascript
:
osascript -e 'display notification "Notification text" with title "Notification Title" subtitle "Notification sub-title" sound name "Submarine"'
No toma el subtítulo ni el sonido duro.
Con AppleScript :
display alert "Alert title" message "Your message text line here."
Con terminal / bash y osascript
:
osascript -e 'display alert "Alert title" message "Your message text line here."'
Agregue una línea en bash para reproducir el sonido después de la línea de alerta:
afplay /System/Library/Sounds/Hero.aiff
Agregue la misma línea en AppleScript , dejando que el script de shell haga el trabajo:
do shell script ("afplay /System/Library/Sounds/Hero.aiff")
Lista de sonidos integrados de macOS para elegir aquí .
Parafraseado de un artículo útil sobre notificaciones de terminal y manzanas .
Y mis 15 centavos. Una línea para el terminal mac, etc.simplemente configure 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 adicional de inspiración para combinar más comandos; esto pondrá un mac en modo de suspensión en espera sobre el mensaje también :) el inicio de sesión de sudo es necesario entonces, una multiplicación como el 60 * 2 por dos horas también va
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
Una pregunta y respuesta similar está disponible en: /superuser/246353/how-to-make-the-terminal-do-a-pop-up-alert-in-osx
Hice un guión para solucionar esto que está aquí . No necesita ningún software adicional para esto. Instalación:
brew install akashaggarwal7/tools/tsay
Uso:
sleep 5; tsay
¡Siéntete libre de contribuir!