【问题标题】:Lua Mac os.execute open Terminal and run commandLua Mac os.execute 打开终端并运行命令
【发布时间】:2020-05-26 18:28:35
【问题描述】:

我需要打开 Mac 终端并在 Lua 中使用 os.execute 运行一些命令

export VAMP_PATH=/path/to/plugin/directory
cd /path/to/script
./sonic-annotator -l

编辑:让它在没有终端的情况下工作

os.execute('export VAMP_PATH="'..script_path..'sonic/mac64/vamp"; cd "'..script_path..'sonic/mac64/"; ./sonic-annotator -d vamp:qm-vamp-plugins:qm-barbeattracker:beats -w csv "'..filename..'"')

【问题讨论】:

  • 请问您有什么问题?代码好像不是 Lua 的?
  • 为什么需要终端?进程和脚本不需要它们,除非它们输出您需要查看的内容。是这样吗?
  • 也许你想要p=io.popen("/bin/sh","w"); p:write("ls","\n")

标签: macos lua


【解决方案1】:

要回答您的实际问题,您可以启动终端并在其中运行一些bash 命令,如下所示:

os.execute("osascript -e 'tell application \"Terminal\" to do script \"cd /Users/mark && ls\"'")

但是,正如我在 cmets 中所说,您不一定需要终端来运行脚本,因此您只需运行如下命令即可:

os.execute("export V=fred; cd /Users/mark && ./SomeScript.sh")

如果您运行脚本是因为您只想让用户看到脚本的输出,那么如果您像这样运行命令并将结果通过管道传输到 open -f,这通常会更容易并且涉及的引用要少得多,这会显示文本编辑器中的输出:

os.execute("cd /Users/mark; ls | open -f")

【讨论】:

    猜你喜欢
    • 2012-12-13
    • 2019-05-15
    • 1970-01-01
    • 1970-01-01
    • 2016-02-14
    • 2016-10-09
    • 2014-02-11
    • 1970-01-01
    • 2021-12-09
    相关资源
    最近更新 更多