【问题标题】:How can I run some command in iTerm session using the Python API如何使用 Python API 在 iTerm 会话中运行某些命令
【发布时间】:2020-06-03 09:44:48
【问题描述】:

我正在尝试编写一个脚本来在我的 iTerm2 上执行一些自动化操作。 我正在使用Python API for iTerm,因为我对 AppleScript 一无所知。

我需要做的基本上是,分屏是6个窗口,每个窗口本地运行6个微服务。我成功地分割了屏幕,但我无法在其中任何一个中运行命令。

提前致谢。

我现有的代码如下

#!/usr/bin/env python3.7

import iterm2
# This script was created with the "basic" environment which does not support adding dependencies
# with pip.

async def main(connection):
    # Your code goes here. Here's a bit of example code that adds a tab to the current window:
    app = await iterm2.async_get_app(connection)
    window = app.current_terminal_window
    if window is not None:
        await window.async_create_tab()
    else:
        # You can view this message in the script console.
        print("No current window")

    leftOne = app.current_terminal_window.current_tab.current_session
    rightOne = await leftOne.async_split_pane(vertical=True)
    leftTwo = await leftOne.async_split_pane()
    leftThree = await leftOne.async_split_pane()
    rightTwo = await rightOne.async_split_pane()
    rightThree = await rightOne.async_split_pane()

    await leftOne.async_activate()
    await leftOne.as

iterm2.run_until_complete(main)

【问题讨论】:

  • 运行命令是最简单的部分,但最近几天我一直在摸索如何运行命令和捕获结果......

标签: python iterm2 iterm


【解决方案1】:

您可以使用async_send_text() 方法将击键发送到Sessions

在您的代码中,以下将执行一个命令:

leftOne = app.current_terminal_window.current_tab.current_session
await leftOne.async_send_text('whoami\n')

【讨论】:

    猜你喜欢
    • 2010-10-09
    • 2022-01-04
    • 2021-03-08
    • 1970-01-01
    • 2020-11-17
    • 1970-01-01
    • 2019-11-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多