Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/macos/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Macos 在applescript的一行中运行shell脚本并提供输入_Macos_Applescript_Macos Sierra - Fatal编程技术网

Macos 在applescript的一行中运行shell脚本并提供输入

Macos 在applescript的一行中运行shell脚本并提供输入,macos,applescript,macos-sierra,Macos,Applescript,Macos Sierra,我正在尝试自动安装一个需要在MacOS终端上运行的程序。这看起来很简单,但安装脚本需要以root(或sudo)身份运行,并从运行它的根目录中查找文件,然后在完成之前寻找用户提供密码作为终端输入。我不介意以可读的格式提供密码,因为我们将只在内部使用它,密码将在我们完成此项目后很快更改 到目前为止,我有以下内容,但它不起作用,因为它似乎不接受来自响应文件的输入。我用睡眠来等待执行第一步所需的几分钟 do shell script "cd ~/Desktop/; ./setup; /bin/sleep

我正在尝试自动安装一个需要在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

我会第一个承认我是个彻头彻尾的笨蛋!谢谢你的耐心

好的,我已经看到你的命令中有几个错误了。而且似乎还不清楚你想要实现什么。然而,与其问很多问题并造成混乱,不如让我们坚持第一步

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:没有这样的文件或目录
。因此这可能表明:

  • ~/Desktop/安装程序不存在。(请检查是否存在)
  • ~/Desktop/setup未正确指定,您需要添加文件扩展名(例如~/Desktop/setup.sh)
  • 您没有执行该文件的适当权限。因此,您应该执行类似于
    chmod u+x
    的操作,以将执行权限授予当前用户。(对于root用户,
    sudo chmod u+x
  • 看看你能不能先通过考试。学习编码通常意味着一开始就要循序渐进


    祝您好运。

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