【发布时间】:2014-05-28 07:55:24
【问题描述】:
我正在尝试编写一个自动化服务来在终端中启动virtualhost.sh。
使用服务上下文菜单打开对话框询问虚拟主机的名称,然后运行一个applescript来启动终端并传入输入文本。
我想要的是将我的用户名和密码传递给管理员权限,这样我就不需要在终端中使用 sudo 传递它。
这可以通过do shell script 完成,但执行bin/sh 并且virtualhost.sh 是一个bash 脚本,所以我收到错误bin/sh: virtualhost.sh command not found
我也可以使用do script with command,但这不允许我传递用户名和密码。
我的代码如下所示:
on run {input, parameters}
set vhost to "virtualhost.sh " & input
tell application "Terminal"
activate
do shell script vhost user name "user" password "pass" with
administrator privileges
end tell
end run
这会产生前面提到的 bin/sh 错误。
与do script with command
on run {input, parameters}
set vhost to "virtualhost.sh " & input
tell application "Terminal"
activate
do script with command vhost user name "user" password "pass" with
administrator privileges
end tell
end run
这会产生转义错误:预期行尾等,但找到了属性。
有没有办法正确地做到这一点?
【问题讨论】:
-
听起来您正在尝试提供服务。有理由不使用
launchd吗?
标签: bash shell applescript