ron*_*ldt 6 audio macos command alarm
当我们运行需要一段时间的命令(如源代码编译或brew升级)时,我们通常会执行其他操作,例如Web搜索,而不是在整个时间内查看命令.
命令完成后,有什么方法可以得到通知吗?
brew upgrade | afplay /System/Library/Sounds/Submarine.aiff -v 10
Run Code Online (Sandbox Code Playgroud)
我在Mac上尝试使用afplay,但问题是a)由于管道没有显示stdout,b)它在命令开始运行后立即播放声音,而不是等到"brew upgrade"结束.
有什么建议吗?
Gio*_*gio 12
brew upgrade && say brew upgrade done
利用该say命令并获得自定义语音通知
一般例子:
YOUR_COMMAND && say YOUR_COMMAND done
Mar*_*ell 10
我想你需要
brew upgrade && afplay /System/Library/Sounds/Submarine.aiff -v 10
Run Code Online (Sandbox Code Playgroud)
如果brew成功完成,那么afplay将会运行.
作为解释的说明,你要求shell确定两个语句("brew"和"afplay")是否都为真 - 因此它必须在执行之前完全评估"brew"语句(即等待它完成) "afplay"以确定两个陈述是否属实.
谢谢马克。你给了我一个好主意。
我没注意到&& || 在外壳上也可以表示逻辑运算符。看来“ && afplay ..”仅在“酿造升级”返回0(大多数情况下会发生)并且“ ||”时有效。“ afplay ..”仅在“酿造升级”返回1(或任何非零)含义错误时起作用。我决定使用分号';' 因此,afplay可以在完成工作后的“酿造升级”后发出声音警报。
brew upgrade ; afplay /System/Library/Sounds/Submarine.aiff -v 10
Run Code Online (Sandbox Code Playgroud)
编辑:现在,我在.profile(或.bashrc)中使用以下代码,该代码利用了高级通知程序工具terminal-notifier。
function brew { caffeinate -s brew $@; terminal-notifier -title 'Homebrew' -subtitle 'Finished' -message brew' '$1' '$2' '$3 -sound 'recv_mail' -contentImage '/Download/Any/Icon/beer_icon.png';}
Run Code Online (Sandbox Code Playgroud)
请注意:
caffeinate用于防止Brew长时间工作时Mac进入睡眠模式。如果删除“ caffeinate -s”,则还应该重命名函数名称。| 归档时间: |
|
| 查看次数: |
3766 次 |
| 最近记录: |