我希望能够让我的程序显示警告,通知,显示我的自定义文本。这是怎么做到的?此外,是否可以制作一个带有几个设置变量的按钮?
与批次相似:
echo msgbox""<a.vbs&a.vbs
答案 0 :(得分:187)
使用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 Hints。
答案 1 :(得分:58)
如果您使用的是具有通知中心的任何Mac OS X版本,则可以使用terminal-notifier gem。首先安装它(您可能需要sudo
):
gem install terminal-notifier
然后简单地说:
terminal-notifier -message "Hello, this is my message" -title "Message Title"
答案 2 :(得分:54)
使用此命令从终端触发通知中心通知。
osascript -e 'display notification "Lorem ipsum dolor sit amet" with title "Title"'
答案 3 :(得分:6)
如果答案为空,这会将焦点恢复到上一个应用程序并退出脚本。
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编辑器中打开标准添加词典,或查看AppleScript Language Guide。
答案 4 :(得分:5)
使用 AppleScript :
display notification "Notification text" with title "Notification Title" subtitle "Notification sub-title" sound name "Submarine"
使用终端/ bash 和osascript
:
osascript -e 'display notification "Notification text" with title "Notification Title" subtitle "Notification sub-title" sound name "Submarine"'
不带小标题,也不强硬。
使用 AppleScript :
display alert "Alert title" message "Your message text line here."
使用终端/ bash 和osascript
:
osascript -e 'display alert "Alert title" message "Your message text line here."'
在警报行后的 bash 中添加一行以播放声音:
afplay /System/Library/Sounds/Hero.aiff
在 AppleScript 中添加同一行,让 shell脚本完成工作:
do shell script ("afplay /System/Library/Sounds/Hero.aiff")
sounds to choose from here中内置的macOS列表。
摘自terminal and applescript notifications上一篇方便的文章。
答案 5 :(得分:2)
我的15美分。 mac终端等的一个内线只是将MIN =设置为any和消息
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放到备用睡眠状态的消息:)然后需要sudo登录,然后乘以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
答案 6 :(得分:1)
类似的问题和答案可在以下网址找到: https://superuser.com/questions/246353/how-to-make-the-terminal-do-a-pop-up-alert-in-osx
答案 7 :(得分:1)
osascript -e 'display notification "hello world!"'
osascript -e 'display notification "hello world!" with title "This is the title"'
osascript -e 'display notification "hello world!" with title "Greeting" sound name "Submarine"'
osascript -e 'display notification "'"$TR_TORRENT_NAME has finished downloading!"'" with title " ✔ Transmission-daemon"'
学分:https://code-maven.com/display-notification-from-the-mac-command-line
答案 8 :(得分:0)
我制作了一个脚本来解决这个here。您不需要任何额外的软件。
安装:
brew install akashaggarwal7/tools/tsay
用法:
sleep 5; tsay
随意贡献!