在 OS X 启动时自动使用 sudo 和密码运行命令行应用程序

在 OS X 启动时自动使用 sudo 和密码运行命令行应用程序

我需要在启动/登录 Mac 时运行一个应用程序。我希望它在后台启动并开始工作,而不会打扰我,也不需要我启动它,因为我总会忘记,然后当我需要它时,它却没有运行!

我曾尝试使用 AppleScript 告诉 Terminal 运行它并输入我的密码,但最终打开了多个 Terminal 窗口,无法正常工作。理想情况下,我需要一个脚本,只需将其添加到用户登录项中,它就会为我运行。

该应用程序也无法接受密码参数,并且它有密码和 sudo!我需要一个可以作为 applescript(可以制作成可执行文件)的解决方案,或者我需要一个命令行脚本,但我对它们一无所知。

这是我输入的手动代码

$ sudo serverStatus
password:123456
password:serverpass

我的 AppleScript:

tell application Terminal
 activate
 do shell script "sudo serverStatus"
 delay 5
 do shell script "123456"
 delay 2
 do shell script "serverpass"
end tell

答案1

do shell script用于在 AppleScript 中执行 shell 脚本,不会真正打开终端窗口。您可以使用 打开一个新的终端窗口,do script然后使用 模拟输入密码keystroke

tell application "Terminal"
    do script "sudo serverStatus"
    activate
end tell
delay 1
tell application "System Events"
    keystroke "login password" & return
    delay 1
    keystroke "server password" & return
end tell

如果你愿意的话,你也可以使用登录钩子它将在您登录用户帐户后运行。此钩子可以使用以下命令调用相应的 AppleScript:

osascript /path/to/script.scpt

但如果您只是手动将其添加到登录项中,这似乎有点太多了。

相关内容