解決了等待會話登錄時,命令打印在登錄日志后的問題豁状。
#!/usr/bin/env python
import iterm2
import AppKit
# 使用 MAC AppKit 打開 iTerm 應(yīng)用
AppKit.NSWorkspace.sharedWorkspace().launchApplication_("iTerm")
async def main(connection):
app = await iterm2.async_get_app(connection)
tab = await app.current_window.async_create_tab()
# 等待會話登錄時礁鲁,不讓命令打印在登錄日志后
i = 0
async with tab.current_session.get_screen_streamer(want_contents=True) as streamer:
while True:
content = await streamer.async_get()
if content.line(i).string == '' or i > 2:
break
i = i + 1
# 在會話中執(zhí)行命令趣席,命令會隨著會話結(jié)束(tab 關(guān)閉, window關(guān)閉)而終止
await tab.current_session.async_run_coprocess(command_line="echo 'ls ~'")
# 等待 APP 啟動并發(fā)起連接汰规,APP 啟動不成功會一直阻塞
iterm2.run_until_complete(main, True)