Risposte:
Usa osascript
. Per esempio:
osascript -e 'tell app "Finder" to display dialog "Hello World"'
Sostituisci "Finder" con qualsiasi app desideri. Nota se l'app è in background, anche la finestra di dialogo apparirà in background. Per mostrare sempre in primo piano, utilizza "Eventi di sistema" come app:
osascript -e 'tell app "System Events" to display dialog "Hello World"'
Per saperne di più su Mac OS X Hints .
Usa questo comando per attivare la notifica del centro notifiche dal terminale.
osascript -e 'display notification "Lorem ipsum dolor sit amet" with title "Title"'
Se stai utilizzando una qualsiasi versione di Mac OS X con Centro notifiche, puoi utilizzare la gemma di notifica del terminale . Prima installalo (potrebbe essere necessario sudo
):
gem install terminal-notifier
e poi semplicemente:
terminal-notifier -message "Hello, this is my message" -title "Message Title"
Vedi anche questo post su OS X Daily .
brew install terminal-notifier
funziona anche se preferisci preparare.
Ciò ripristinerebbe il focus sull'applicazione precedente e uscirà dallo script se la risposta era vuota.
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
Se dicessi agli eventi di sistema di visualizzare la finestra di dialogo, ci sarebbe stato un piccolo ritardo se non fosse stato eseguito prima.
Per la documentazione sulla finestra di dialogo di visualizzazione, apri il dizionario delle aggiunte standard in AppleScript Editor o consulta la Guida del linguaggio AppleScript .
Con AppleScript :
display notification "Notification text" with title "Notification Title" subtitle "Notification sub-title" sound name "Submarine"
Con terminal / bash e osascript
:
osascript -e 'display notification "Notification text" with title "Notification Title" subtitle "Notification sub-title" sound name "Submarine"'
Non accetta il sottotitolo né il suono duro.
Con AppleScript :
display alert "Alert title" message "Your message text line here."
Con terminal / bash e osascript
:
osascript -e 'display alert "Alert title" message "Your message text line here."'
Aggiungi una linea in bash per riprodurre il suono dopo la linea di avviso:
afplay /System/Library/Sounds/Hero.aiff
Aggiungi la stessa riga in AppleScript , lasciando che lo script di shell faccia il lavoro:
do shell script ("afplay /System/Library/Sounds/Hero.aiff")
Elenco dei suoni integrati di macOS tra cui scegliere qui .
Parafrasato da un pratico articolo sulle notifiche del terminale e di AppleScript .
E il mio 15 cent. Una riga per il terminale mac ecc. Basta impostare MIN = su qualunque cosa e un messaggio
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 esempio bonus per l'ispirazione per combinare più comandi; questo metterà un mac messo in standby anche sul messaggio :) è necessario il login sudo quindi, una moltiplicazione come 60 * 2 per due ore va pure
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 domanda e una risposta simili sono disponibili su: /superuser/246353/how-to-make-the-terminal-do-a-pop-up-alert-in-osx
Ho creato uno script per risolvere questo problema che è qui . Non hai bisogno di alcun software aggiuntivo per questo. Installazione:
brew install akashaggarwal7/tools/tsay
Utilizzo:
sleep 5; tsay
Sentiti libero di contribuire!