美文网首页
iTerm2 python api 打开窗口运行命令

iTerm2 python api 打开窗口运行命令

作者: koyeo | 来源:发表于2020-12-19 20:16 被阅读0次

    解决了等待会话登录时,命令打印在登录日志后的问题。

    #!/usr/bin/env python
    
    import iterm2
    import AppKit
    
    # 使用 MAC AppKit 打开 iTerm 应用
    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
    
        # 在会话中执行命令,命令会随着会话结束(tab 关闭, window关闭)而终止
        await tab.current_session.async_run_coprocess(command_line="echo 'ls ~'")
    
    
    # 等待 APP 启动并发起连接,APP 启动不成功会一直阻塞
    iterm2.run_until_complete(main, True)
    

    相关文章

      网友评论

          本文标题:iTerm2 python api 打开窗口运行命令

          本文链接:https://www.haomeiwen.com/subject/iqvcnktx.html