web-dev-qa-db-fra.com

Comment créer un pop-up / une alerte de terminal Mac? Applescript?

Je souhaite que mon programme affiche une alerte, un avis, quel que soit l'affichage de mon texte personnalisé. Comment est-ce fait? Aussi, est-il possible d'en créer un avec plusieurs boutons pour définir une variable?

Similaire aux lots: echo msgbox""<a.vbs&a.vbs

95
JShoe

Utilisez osascript . Par exemple:

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

Remplacer "Finder" avec l'application de votre choix. Notez que si cette application est en arrière-plan, la boîte de dialogue apparaîtra également en arrière-plan. Pour toujours afficher au premier plan, utilisez "Evénements système" comme application:

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

En savoir plus sur astuces Mac OS X .

193
Anne

Si vous utilisez une version de Mac OS X disposant du Notification Center, vous pouvez utiliser le notificateur de terminal gem. Commencez par l'installer (vous aurez peut-être besoin de Sudo):

gem install terminal-notifier

et ensuite simplement:

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

Voir aussi cet article quotidien sur OS X .

59
Enrico Carlesso

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"'
54
Pradeep Vairamani

Cela rétablirait le focus sur 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 aviez indiqué à System Events d’afficher la boîte de dialogue, il y aurait un petit délai s’il n’était pas exécuté auparavant.

Pour la documentation sur la boîte de dialogue d’affichage, ouvrez le dictionnaire des ajouts standard dans l’éditeur AppleScript ou consultez le Guide du langage AppleScript .

6
Lri

Et mes 15 cent. Un one liner pour le terminal mac, etc. il suffit de régler 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 d'inspiration pour combiner plus de commandes; cela mettra aussi un mac en veille en attente sur le message :) la connexion Sudo est alors nécessaire, une multiplication comme le 60 * 2 pendant deux heures va également 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

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

1
Mark

J'ai fait un script pour résoudre ce qui est ici . Vous n'avez besoin d'aucun logiciel supplémentaire pour cela. Installation:
brew install akashaggarwal7/tools/tsay
Usage:
sleep 5; tsay

N'hésitez pas à contribuer!

0
Akash Agarwal