Comment puis-je faire une pop-up/alerte Mac Terminal? Applescript?

je veux être en mesure d'avoir mon programme affiche une alerte, un avis, quel qu'affiche mon texte personnalisé. Comment est-ce fait? Aussi, est-il possible de faire un avec plusieurs boutons qui définit une variable?

similaire à celui du lot: echo msgbox""<a.vbs&a.vbs

84
demandé sur JShoe 2011-04-08 01:48:31

7 réponses

Utilisation osascript . Par exemple:

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

remplaçant "Finder" par n'importe quelle application que vous désirez. Notez que si cette application est backgrounded, la boîte de dialogue apparaîtra aussi dans le background. Pour toujours apparaître au premier plan, utilisez "événements système" comme l'application:

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

plus d'informations sur Mac OS X Hints .

174
répondu Anne 2015-09-09 13:54:46

si vous utilisez une version Mac OS X qui possède un centre de Notification, vous pouvez utiliser le terminal-notifiant gem. Installez-le d'abord (vous pourriez avoir besoin de sudo ):

gem install terminal-notifier

et puis simplement:

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

Voir aussi cette OS X Daily post .

54
répondu Enrico Carlesso 2018-03-04 03:22:30

utilisez cette commande pour déclencher la notification du centre de notification à partir du terminal.

osascript -e 'display notification "Lorem ipsum dolor sit amet" with title "Title"'
46
répondu Pradeep Vairamani 2014-07-07 08:10:32

cela restaurerait la mise au point de l'application précédente et quitterait le script si la réponse était vide.

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 vous avez demandé aux événements système d'afficher la boîte de dialogue, il y aurait un petit délai si elle ne fonctionnait pas avant.

De la documentation sur affichage de la boîte de dialogue, ouvrez le dictionnaire des Ajouts dosés dans l'Éditeur AppleScript ou voir le Langage AppleScript Guide .

6
répondu user495470 2012-09-26 11:20:40

et mes 15 cents. Un one liner pour le terminal mac etc vient de définir le MIN = à n'importe quoi et un message

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 exemple de bonus pour l'inspiration de combiner plus de commandes; cela mettra un mac mis en veille sur le message aussi :) le login sudo est nécessaire alors, une multiplication que le 60*2 pour deux heures va aussi bien

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
2
répondu K. Kilian Lindberg 2015-12-26 15:40:15

une question et une réponse similaires sont disponibles à: https://superuser.com/questions/246353/how-to-make-the-terminal-do-a-pop-up-alert-in-osx

1
répondu Mark 2017-03-20 10:18:16

j'ai fait un script pour résoudre ce qui est ici . Vous n'avez pas besoin de logiciel supplémentaire pour cela. Installation:

brew install akashaggarwal7/tools/tsay

Utilisation:

sleep 5; tsay

N'hésitez pas à contribuer!

0
répondu Akash Agarwal 2016-10-15 15:11:21