如何从C ++代码中打开一个新终端并在其中写入。我知道如何使用系统命令(系统(“/ 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中完成?
答案 0 :(得分:0)
您调用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"'