我正在使用paramiko进行SSH与远程设备的通信。我使用paramiko shell(
paramiko shell的主要问题是(据我在这里阅读的许多答案),不能保证像
因此,我创建了一个机制来读取shell输出的最后一行,并确定该行是否仅包含shell提示符,在这种情况下,命令执行已完成。这对于提示符没有更改的情况有效。
现在,我在这里阅读到Wait until task is completed on Remote Machine through Python,其中'exec_command()'方法返回元组'stdin、stdout、stderr',并且执行
我的问题是,如果我创建这样的元组,并在每个交互式命令上打开时执行
invoke_shell()
方法)进行交互。paramiko shell的主要问题是(据我在这里阅读的许多答案),不能保证像
recv_exit_status()
和exit_status_ready()
这样指示服务器完成写入的paramiko SSHClient方法会按预期运行。因此,我创建了一个机制来读取shell输出的最后一行,并确定该行是否仅包含shell提示符,在这种情况下,命令执行已完成。这对于提示符没有更改的情况有效。
现在,我在这里阅读到Wait until task is completed on Remote Machine through Python,其中'exec_command()'方法返回元组'stdin、stdout、stderr',并且执行
stdout.channel.recv_exit_status()
将阻塞通道直到完成任务。我的问题是,如果我创建这样的元组,并在每个交互式命令上打开时执行
stdout.channel.recv_exit_status()
,那么它会做到这一点吗?它会在交互式命令结束时返回吗?