1

如何从 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中做到这一点?

4

1 回答 1

0

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

一种方法是通过从命令行运行 AppleScript osascript。您可以使用“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"'
于 2013-10-09T03:03:59.307 回答