您好
在我的AppleScript中,我正在运行以下代码,
do shell script "sudo networksetup -setproxybypassdomains Ethernet *.local, 169.254/16"
do shell script "sudo networksetup -setwebproxy Ethernet 127.0.0.1 8888"
do shell script "sudo networksetup -setsecurewebproxy Ethernet 127.0.0.1 8888"
但是,它每次都要求输入密码。我的意思是当脚本打开时,它会为每行进程请求密码3次。为了防止询问密码,我必须在终端中输入以下内容,
sudo chmod u + s / usr / sbin / networksetup
当按下Enter键时,它会要求输入密码,输入并运行AppleScript后再不会要求输入密码(3次)。
但是用户必须转到终端并输入上述命令。为了防止这种情况,我在AppleScript中使用了以下代码,
do shell script "sudo chmod u+s /usr/sbin/networksetup"
因此用户运行AppleScript并自动设置。但是我收到以下错误消息,
如何更改AppleScript,
do shell script "sudo chmod u+s /usr/sbin/networksetup"
...让它一次要求输入密码,然后执行“... do shell script ...”部分的其余部分而不要求输入密码。或者添加密码以及上面的代码行以使其正常工作?
答案 0 :(得分:5)
您是否查看过“do shell script”命令的定义?你没有使用sudo与该命令。您可以使用“具有管理员权限”,如果愿意,可以提供“用户名”和“密码”。
执行此操作...打开AppleScript编辑器。在“文件”菜单下,选择“打开字典”。从对话框窗口中选择StandardAdditions.osax。在字典的搜索字段中搜索“do shell script”以查看您可以使用该命令执行的所有操作。
例如,以下是您可以使用它的方法。祝你好运。
do shell script "networksetup -setproxybypassdomains Ethernet *.local, 169.254/16" with administrator privileges
答案 1 :(得分:0)
您可以将密码作为参数传递给sudo
。从手册页:
-S The -S (stdin) option causes sudo to read the password from
the standard input instead of the terminal device. The
password must be followed by a newline character.