我想使用asyncssh与服务器建立ssh连接,并在其中执行bash命令。然后,对于stdout中的每一行,我都希望将其实时添加到列表中。
我正在使用github问题的示例,但它似乎对我不起作用。我的代码如下:
async def ssh_terminal(cmd):
results = []
async with asyncssh.connect(...) as conn:
async with conn.create_process(cmd,
stdout=asyncio.subprocess.PIPE,
stderr=asyncio.subprocess.PIPE) as proc:
timeout = time.time() + 10
while proc:
output = await proc.stdout.readline()
output.append(results)
我想要做的是显示在终端更新时将输出附加到列表中。以ping
命令为例。除了执行我需要的操作外,它还会打印第一行,然后断开连接。