为什么这可能不再起作用了? 后台终端密码提示是否发生了变化?
几个月来,我一直使用脚本让我的 MacBook 进入睡眠状态。我通常会禁用睡眠,这样我就可以在不停止任何东西或锁定任何东西的情况下关闭盖子。
直到今天为止,这一切都运行良好。我现在收到: 'sudo:需要终端读取密码;使用 -S 选项从标准输入读取或配置askpass helper sudo:需要密码'
以前,脚本能够自行触发用户提示,并且我将其设置为允许指纹授权。这样我就可以简单地激活脚本,触摸触摸传感器,然后就可以上路了。
完整的脚本是:
do shell script "sudo pmset -a disablesleep 0"
tell application "System Events" to sleep
do shell script "sudo pmset -a disablesleep 1"
并作为应用程序包装在我的应用程序文件夹中。
我尝试使用
sudo -S pmset
但这似乎是为了从其他地方输入密码或某种其他类型的提示。我认为这是错误的,因为我希望它做以前做过的事情。
我认为这是通过终端提示的。
我不确定这种方式如何使用
sudo
。无论如何,从 AppleScript 以 root 身份运行 shell 代码的更好方法是使用 with administrator privileges
而不是 sudo
:
do shell script "pmset -a disablesleep 0" with administrator privileges
tell application "System Events" to sleep
do shell script "pmset -a disablesleep 1" with administrator privileges