【问题标题】:run shell script in one line from applescript and provide input从 applescript 在一行中运行 shell 脚本并提供输入
【发布时间】:2017-03-21 15:20:34
【问题描述】:

我正在尝试自动安装需要从 MacOS 上的终端运行的程序。这看起来很简单,但安装脚本需要以 root(或 sudo)身份运行,并从运行它的根目录中查找文件,然后在完成之前寻找用户提供密码作为终端输入。我不介意以可读格式提供密码,因为我们只会在内部使用它,并且在我们完成这个项目后很快就会更改密码。

到目前为止,我有以下内容,但它不起作用,因为它似乎不接受我从响应文件中输入的内容。我正在使用睡眠来等待执行第一步所需的片刻。

do shell script "cd ~/Desktop/; ./setup; /bin/sleep 5; ~/Desktop/MyApp/Tools/RunThis_WithVarialbles -s blah.com -someOtherVaiable -u uName@blah.com < ~/Desktop/sccm/Tools/response.txt" password "passwdIDCisVisible`enter code here`" with administrator privileges

我从脚本编辑器得到的错误是:

error "/bin/sh: ./setup: No such file or directory
ERROR 2 when mkdir in CreateDirectory - No such file or directoryERROR 2 when mkdir in CreateDirectory - No such file or directory
Please enter your password.
(null)(null)(null)(null)(null)" number 8

我会第一个承认我是个菜鸟!感谢您的耐心等待!

【问题讨论】:

  • 问题可能出在./setup,因此您可能应该发布代码。
  • ./setup 是供应商提供的可执行二进制文件。

标签: macos applescript macos-sierra


【解决方案1】:

好的,所以我已经在您的命令中看到了一些错误。而且似乎仍然不清楚您要达到的目标。然而,与其提出很多问题并造成混乱,不如让我们坚持第一步。

错误消息的第一部分为:error "/bin/sh: ./setup: No such file or directory。所以这可能表明:

  1. ~/Desktop/setup 不存在。 (检查是否有)。
  2. ~/Desktop/setup 未正确指定,您需要添加文件扩展名(例如 ~/Desktop/setup.sh)
  3. 您没有执行该文件的适当权限。因此,您应该执行chmod u+x 之类的操作,以将执行权限授予您当前的用户。 (和sudo chmod u+x 为根)。

看看你能不能先通过。学习编码通常意味着首先要采取婴儿步骤。

祝你好运。

【讨论】:

  • 感谢您的帮助!请在下面查看我对您的回复... 1. ~/Desktop/setup 确实存在,它是由软件供应商编译的二进制文件,它不是我可以编辑的脚本。是的,我证实它是一个听起来很奇怪的二进制文件。 2. ~/Desktop/setup 没有扩展名。 3. 已经可以执行了。
  • 好的,但是还有两个问题:您如何确定它是可执行的?您能否发布ls -l 的输出,以便我们确定?此外,如果它是二进制文件,如果您不指定特定程序来运行它,它将永远不会运行。在您当前的命令中,您尝试将其作为常规 shell 脚本运行,这将无法正常工作,因为 BASH 和 ZSH 等常规 shell 将无法自行执行它。
最近更新 更多