我想在 Mac 上安排增加音量,但无法让它正常工作。我现在在终端中执行的是这个命令:
echo 'osascript -e "set volume output volume 10"' | at 17:03
它没有任何效果,但有趣的是,我可以不使用“at”部分来使用它,但在这种情况下,我当然无法安排它。使用“sudo”也无济于事。
我的系统是“MacOS Big Sur 11.7.4”
提前致谢。
答案1
如果您想在特定时间运行它,crontab 可以很好地发挥作用。
在crontab中设置的方法有两种。
如果你了解 vi,请输入
crontab -e
插入一行或多行
0 21 * * * /usr/bin/osascript -e set volume output volume 0" > /dev/null 2>&1 0 8 * * * /usr/bin/osascript -e set volume output volume 100" > /dev/null 2>&1
保存后就大功告成了。晚上 9 点关闭音量,早上 8 点打开。
替代方法:
如果你已经有了 crontab 类型
crontab -l > crontab.txt
编辑 crontab.txt 并添加你想要的内容
然后运行
crontab crontab.txt
进行安装。如果你还没有 crontab,第一次执行
crontab crontab.txt
安装它。
最后,按顺序排列“字段”
minute 0-59 hour 0-23 day of month 1-31 month 1-12 day of week 0-6 command and args 0 is Sunday.
man -a
crontab 了解更多
答案2
我同意 LaunchAgent 的想法。这是一项古怪的技术,但一旦你学会了它,它就会变得强大而灵活。
不过,您不必真正编写脚本。LaunchAgents 可以有多个参数。
这会降低我的音量。Mac 首次加载时会静音( ),晚上 9:30 时静音——比我公寓楼的“安静时间”早半小时。
将其放入您的$HOME/Library/LaunchAgents/
文件夹中,命名com.example.scheduled.mute.plist
,如果您想重命名,则必须同时更改密钥和文件名。标签必须是文件名,减去 .plist 扩展名。这样就比较挑剔了……
此外,这仅在您登录后(或任何人的主文件夹)才会执行,因为这$HOME/Library/LaunchAgents
是您将登录时运行的 LaunchAgents 放在那里。/Library/LaunchAgents
将是系统范围的,但我从未尝试以 root 身份运行 AppleScript。
此外,第一次运行它时,您可能会被提示“允许终端访问”或类似内容,并且必须进入系统偏好设置并允许它。
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Label</key>
<string>com.example.scheduled.mute</string>
<key>ProgramArguments</key>
<array>
<string>osascript</string>
<string>-e</string>
<string>set volume output volume 0</string>
</array>
<key>StartCalendarInterval</key>
<dict>
<key>Hour</key>
<integer>19</integer>
<key>Minute</key>
<integer>30</integer>
</dict>
<key>RunAtLoad</key>
<true/>
</dict>
答案3
如果你想在 macOS 上做这样的事情,你应该使用 launchd(查看启动 plist)。
echo
是一个内置命令,所以我不确定您是否可以将其视为守护进程。您可能需要做的是编写一个简单的脚本,set_volume.sh
其中包含:
echo 'osascript -e "set volume output volume 10"'
然后使其成为set_volume.sh
可执行文件并将其视为启动守护程序。