【问题标题】:How can I open a new terminal from C ++ code and write inside it如何从 C++ 代码打开一个新终端并在其中写入
【发布时间】:2013-09-30 23:02:05
【问题描述】:

如何从 C++ 代码打开一个新终端并在其中写入。我知道如何使用系统命令(system(“/Applications/Utilities/Terminal.app/Contents/MacOS/Terminal”))打开新终端,但不知道如何在其中写入字符串?我正在开发一个操作系统 mac os。

在 Linux 中你可以这样做

std :: string cmd = "gnome-terminal-x sh-c 'ls-l; exec bash'"; 
system (cmd.c_str ());

在mac os中怎么做?

【问题讨论】:

    标签: c++ macos terminal system system-calls


    【解决方案1】:

    您调用system() 的基本机制应该仍然有效,您只需要一个不同的命令。

    一种方法是通过osascript 从命令行运行AppleScript。您可以使用“AppleScript 编辑器”应用程序(并使用其窗口菜单中的库命令)来了解有关可以通过这种方式提供给程序的所有命令的更多信息。

    例如,要让 Mac 终端运行 top,我可以调用这个命令行:

    /usr/bin/osascript -e 'tell application "Terminal" to do script "top"'
    

    同样,如果我已经编写了一个完整的命令文件来运行,我可以给它一个 .command 扩展名并让终端打开该文件:

    /usr/bin/osascript -e 'tell application "Terminal" to open "/Users/me/Desktop/MyFile.command"'
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-03-11
      • 1970-01-01
      • 1970-01-01
      • 2020-01-20
      • 2013-10-28
      • 2021-12-09
      • 1970-01-01
      • 2017-10-09
      相关资源
      最近更新 更多