【问题标题】:Running a shell script through AppleScript通过 AppleScript 运行 shell 脚本
【发布时间】:2013-01-22 14:58:23
【问题描述】:

这是我第一次尝试创建终端脚本,然后使用 AppleScript 运行代码。我已经在终端中逐行测试了我的终端脚本(它可以工作......),但想把它放在一个可以被applescript调用的文件中。到目前为止,我已经创建了一个名为 "/Applications/MAMP/htdocs/global_admin/import_database_command_line.sh" 的文件,其中保存了所有单独的命令,第一个是:

/Applications/MAMP/Library/bin/mysql --host=localhost -uroot -proot;

然后我使用 AppleScript 将脚本调用为:

do shell script
"/Applications/MAMP/htdocs/global_admin/import_database_command_line.sh"

不幸的是,对于我脚本中的每一行,我都会收到一个错误,例如:

error "/Applications/MAMP/htdocs/global_admin/import_database_command_line.sh:
line 1: : command not found

在协调我的 AppleScript 和包含我的 shell 命令的文件方面的任何帮助将不胜感激。

【问题讨论】:

    标签: terminal applescript


    【解决方案1】:

    您需要在 .sh 文件的第一行包含 #!/bin/sh

    #!/bin/sh
    
    echo "Hello, world!"
    

    然后您需要使脚本可执行:

    chmod +x import_database_command_line.sh
    

    【讨论】:

    • 感谢您的快速回复!现在我收到错误:sh: /Applications/MAMP/htdocs/global_admin/import_database_command_line.sh: /bin/sh^M: bad interpreter: No such file or directory
    【解决方案2】:

    这是因为“do shell script”AppleScript 命令期望运行引号中包含的 shell 命令。它不希望像您一样调用另一个脚本。只需将您的命令放在引号内,用分号分隔即可。

    执行shell脚本“/Applications/MAMP/Library/bin/mysql --host=localhost -uroot -proot;#other_command;#etc”

    Link

    【讨论】:

      猜你喜欢
      • 2012-08-08
      • 1970-01-01
      • 2011-07-27
      • 2016-03-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多