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()引き続き機能するはずです。別のコマンドが必要なだけです。

これを行う 1 つの方法は、コマンド ラインから を介して AppleScript を実行することですosascript。「AppleScript Editor」アプリケーションを使用して (およびそのウィンドウ メニューの [ライブラリ] コマンドを使用して)、この方法でプログラムに与えることができるすべてのコマンドについて詳しく知ることができます。

たとえば、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 に答える