【问题标题】: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"'