如何使Macterminalpopup/提醒? AppleScript的?
我希望能够让我的程序显示警报,注意,无论显示我的自定义文本。 这是怎么做的? 另外,是否有可能使几个button设置一个variables?
类似于批处理: echo msgbox""<a.vbs&a.vbs
使用osascript
。 例如:
osascript -e 'tell app "Finder" to display dialog "Hello World"'
用你想要的任何应用取代“Finder”。 注意,如果该应用程序是后台,该对话框也将出现在后台。 要始终显示在前台,使用“系统事件”作为应用程序:
osascript -e 'tell app "System Events" to display dialog "Hello World"'
阅读更多关于Mac OS X提示 。
如果您使用任何具有通知中心的Mac OS X版本,则可以使用terminal通知器 gem。 首先安装它(你可能需要sudo
):
gem install terminal-notifier
然后简单地:
terminal-notifier -message "Hello, this is my message" -title "Message Title"
另请参阅此OS X每日post 。
使用此命令从terminal触发通知中心通知。
osascript -e 'display notification "Lorem ipsum dolor sit amet" with title "Title"'
这会将焦点恢复到以前的应用程序,并在答案为空时退出脚本。
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
如果您告诉系统事件显示对话框,如果它之前没有运行,会有一个小的延迟。
有关显示对话框的文档,请在AppleScript Editor中打开标准添加词典或参阅AppleScript语言指南 。
而我的15美分。 Macterminal等的单线程只需设置MIN =任何和消息
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"'
灵感组合更多命令的奖励例子; 这将把一个mac放在待机睡眠的信息也:) sudologin是需要的,然后乘以两个小时的60 * 2也是
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
一个类似的问题和答案可在以下urlfind: https : //superuser.com/questions/246353/how-to-make-the-terminal-do-a-pop-up-alert-in-osx
我写了一个脚本来解决这个问题 。 你不需要任何额外的软件。 安装:
brew install akashaggarwal7/tools/tsay
用法:
sleep 5; tsay
随意贡献!