gpt4 book ai didi

macos - 在 OSX 中,我可以使用系统调用将命令传递到新选项卡中正在运行的终端吗?

转载 作者:行者123 更新时间:2023-12-02 05:14:20 25 4
gpt4 key购买 nike

具体而言,

在系统调用的 OSX 10.6 中,我想通过打开一个新选项卡在预先存在的终端(即 Terminal.app)中打开一个文件以使用 VIM 进行编辑。

当然我可以打开一个新的终端实例

/Applications/Utilities/Terminal.app/Contents/MacOS/Terminal -e vim MyFile

当然,我可以计算出 Terminal 的运行实例的 PID,但我不知道如何将命令传递到该运行程序中。或者,如果 Terminal 支持接收命令并且它是否会打开一个新选项卡。

如果有人知道如何使用类似的系统(例如 linux 和 xterm)执行此操作,它可以帮助我解决 OSX 和终端的问题 - 或者,是否有其他一些技术可以防止打开如此多的终端实例?

编辑:廉价的解决方案

我创建了一个 AppleAcript 脚本

on run app_arg
tell application "System Events"
tell application process "Terminal"
key code {55, 36}
set frontmost to true
key code {55, 17}
keystroke item 1 of app_arg
keystroke return
end tell
end tell
end run

然后像这样通过系统调用运行它

/usr/bin/osascript NEWSCRIPT.scpt "args"

它很脏,但它完成了工作 - 谢谢!

最佳答案

完成的方法是使用 applescript。您可以使用 osascript 命令将 applescript 发送到 OS X 中的东西。我无法快速找到任何直接显示如何打开一个新选项卡并在其中运行命令的内容,但我能够找到一些关于自动化 Terminal.app 的引用资料applescript 的方法,我认为它们可能会为您指明正确的方向。

从最后一个链接看来,唯一的方法就是使用 applescript 将 Command-T 击键发送到终端。这很丑陋,但它会起作用。然后你可以发送你想要执行的命令。 :-)

关于macos - 在 OSX 中,我可以使用系统调用将命令传递到新选项卡中正在运行的终端吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2164402/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com