Yanıtlar:
Kullanın osascript
. Örneğin:
osascript -e 'tell app "Finder" to display dialog "Hello World"'
"Finder" ı istediğiniz uygulama ile değiştirmek. Bu uygulama arka planda ise, iletişim kutusunun da arka planda görüneceğini unutmayın. Her zaman ön planda göstermek için uygulama olarak "Sistem Olayları" nı kullanın:
osascript -e 'tell app "System Events" to display dialog "Hello World"'
Mac OS X İpuçları hakkında daha fazlasını okuyun .
Terminalden bildirim merkezi bildirimini tetiklemek için bu komutu kullanın.
osascript -e 'display notification "Lorem ipsum dolor sit amet" with title "Title"'
Notification Center olan herhangi bir Mac OS X sürümü kullanıyorsanız, terminal-notifier gem'i kullanabilirsiniz . İlk önce kurun (ihtiyacınız olabilir sudo
):
gem install terminal-notifier
ve sonra basitçe:
terminal-notifier -message "Hello, this is my message" -title "Message Title"
Ayrıca bu OS X Günlük gönderisine bakın .
brew install terminal-notifier
Demlemek isterseniz de işe yarar.
Bu, odağı önceki uygulamaya geri yükler ve yanıt boşsa komut dosyasından çıkar.
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
Sistem Olayları iletişim kutusunu görüntülemesini söylediyseniz, daha önce çalışmıyor olsaydı küçük bir gecikme olurdu.
Görüntüleme iletişim kutusu hakkında belgeler için, AppleScript Editor'da Standart Eklemeler sözlüğünü açın veya AppleScript Dil Kılavuzuna bakın .
İle AppleScript :
display notification "Notification text" with title "Notification Title" subtitle "Notification sub-title" sound name "Submarine"
İle uç / bash ve osascript
:
osascript -e 'display notification "Notification text" with title "Notification Title" subtitle "Notification sub-title" sound name "Submarine"'
Ne alt başlığı ne de sesi zor tutuyor.
İle AppleScript :
display alert "Alert title" message "Your message text line here."
İle uç / bash ve osascript
:
osascript -e 'display alert "Alert title" message "Your message text line here."'
Bir çizgi ekleyin bash için ses çalma uyarı satırdan sonra:
afplay /System/Library/Sounds/Hero.aiff
Aynı satırı AppleScript'te ekleyin , kabuk komut dosyasının işi yapmasına izin verin :
do shell script ("afplay /System/Library/Sounds/Hero.aiff")
Buradan seçebileceğiniz macOS yerleşik seslerin listesi .
Terminal ve el yazısı bildirimleriyle ilgili kullanışlı bir makaleden farklılaştırılmıştır .
Ve benim 15 sentim. Mac terminali vb. İçin tek bir astar, sadece MIN = 'yi ne olursa olsun ve bir mesaj olarak ayarlayın
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"'
Daha fazla komutu birleştirmek için ilham için bir bonus örneği; bu da mesajın üzerine bir mac'i uyku moduna geçirecek :) o zaman sudo girişine ihtiyaç var, 60 * 2'nin iki saatlik bir çarpımı da aynı şekilde gidiyor
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
Simüler bir soru ve cevaba şu adresten ulaşılabilir: /superuser/246353/how-to-make-the-terminal-do-a-pop-up-alert-in-osx
Burada olanı çözmek için bir senaryo yaptım . Bunun için ekstra bir yazılıma ihtiyacınız yok. Kurulum:
brew install akashaggarwal7/tools/tsay
Kullanım:
sleep 5; tsay
Katkıda bulunmaktan çekinmeyin!