【发布时间】:2015-04-04 19:30:22
【问题描述】:
我想以编程方式创建一个且只有一个 Terminal.app 窗口,该窗口由文字 Terminal.app 窗口标题(我们称之为“MyConsole1”)唯一标识,并在 Terminal.app 的整个生命周期内向所述窗口发送 bash 命令过程。
这可以通过 Terminal.app 来实现吗?如果可以,如何实现?
详情
我的程序可能需要检查“MyConsole1”是否已经打开,然后再尝试创建一个新的。当然,如果 Terminal.app 尚未运行,请启动它。我还希望在“MyConsole1”(由我的程序)的生命周期内发出的命令能够被人类用户检索到 bash-command-history;即,如果需要,用户可以与“MyConsole1”交互。我不担心使用“MyConsole1”可能出现的用户与程序“冲突”。
我想我需要 AppleScript 来执行此操作。我将把 AppleScript 作为一个更大的 Python 应用程序的一部分运行,可能通过 like this 方法,以防万一。
我了解如何设置 Terminal.app 窗口/选项卡标题like this,但此解决方案不适用于我的上述要求。此外,我只希望窗口中有 1 个选项卡,并且标题适用于整个窗口,而不仅仅是选项卡。
【问题讨论】:
-
如果您使用 iTerm 而不是 Apple 的内置 Terminal.app,您所描述的内容相当简单。我放弃了尝试使用 Apple 的 Terminal.app 或多或少地做到这一点,并转而使用 iTerm。 iTerm 对 Applescript 有更好的支持。如果你想看看这里的一些代码是项目:dustractor.github.io/iTermBlenderLauncher
标签: python macos terminal applescript