从Applescript中运行bash脚本

时间:2016-06-13 21:52:29

标签: bash applescript

我在从Applescript中执行bash脚本时遇到问题。我需要的是Applescript文件提示输入用户名和密码,以便bash脚本以sudo权限运行,因为它正在执行无法以管理员身份完成的任务,例如写入{{1} }。

由于这个脚本(使用Platypus打包在/etc/文件中)将分发给许多用户,我不能依赖绝对路径,而是需要获取Applescript文件的路径。运行,获取.dmg权限,并从同一目录中运行bash脚本。

到目前为止,我通过SO帖子和其他网站提出的所有内容都导致sudo抱怨无法找到bash脚本。有什么想法吗?

这似乎可行,但语法错误:

osascript

1 个答案:

答案 0 :(得分:0)

如果您的脚本保存为应用程序,则必须包含:

Set myPath to path to me

变量myPath将成为您应用的完整路径。从那里,您只需添加子文件夹,如“Contents:Resources:my_shell_script”,以了解您的shell脚本的位置。不要忘记将路径转换为do shell脚本命令的posix(Unix)路径。

要询问用户密码,您可以使用带隐藏选项的显示对话框,以便不显示键入的字符:

set myInput to display dialog "Enter your password" default answer "" with hidden answer
set myPwd to text returned of myInput

要获取用户名,有许多可能的方法;这只是一个:

set UserName to do shell script "/usr/bin/whoami"

但是,如果此用户没有管理员权限,您仍然需要请求管理员用户名。

最后但并非最不重要的是,您的shell脚本可以使用do shell脚本运行(如Vadian所说)

Set R to do shell script "my_script-here"