gpt4 book ai didi

bash - 从 Applescript 中运行 bash 脚本

转载 作者:行者123 更新时间:2023-12-04 17:59:02 27 4
gpt4 key购买 nike

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

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

到目前为止,我通过 SO 帖子和其他网站所能想到的一切,都导致 osascript 提示找不到 bash 脚本。有什么想法吗?

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

set wd to do shell script "pwd"

tell application "Terminal"
set run_cmd to "/bin/bash " & wd & "/osx.sh"
do script run_cmd with administrator privileges
end tell

最佳答案

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

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 script 运行(如 Vadian 所说)

Set R to do shell script "my_script-here"

关于bash - 从 Applescript 中运行 bash 脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37799743/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com