所以我不确定我会用$SUDO_ASKPASS它.基本上,值$SUDO_ASKPASS是一个可执行文件,在调用时会将密码吐出标准输出.因此,如果您的密码是'foo',您可以编写一个shell脚本:
#!/bin/bash
echo 'foo'
Run Code Online (Sandbox Code Playgroud)
把它放进去~/bin/pw.sh.然后,您将设置环境变量并执行以下命令:
SUDO_ASKPASS=${HOME}/bin/pw.sh sudo shutdown -h now
Run Code Online (Sandbox Code Playgroud)
那个例子假设你在达尔文; shutdown在不同的操作系统上表现不同.
这样做(更安全)的更聪明的方法是使用NOPASSWD参数/etc/sudoers.我们会添加这样一行:
jane ALL=NOPASSWD: /sbin/shutdown
Run Code Online (Sandbox Code Playgroud)
这再次假设你在Mac上.你的名字是简.改变这一点.这样,sudo在发出命令时不会要求输入密码/sbin/shutdown.(正确)编辑sudoers的命令是visudo.