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
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 .
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 .
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"'
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 .
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
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
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!