我假设gotoshell
和hapi_debug=1
不是顶级命令,而是的子命令stcli
。换句话说,stcli
是一种外壳。
在这种情况下,您需要将要在子shell中执行的命令写到其stdin
:
stdin, stdout, stderr = ssh.exec_command('stcli')
stdin.write('gotoshell\n')
stdin.write('hapi_debug=1\n')
stdin.flush()
如果您stdout.read
随后调用,它将等到命令stcli
完成。它永远不会做。如果您想继续读取输出,则需要发送一个终止子shell的命令(通常是exit\n
)。
stdin.write('exit\n')
stdin.flush()
print(stdout.read())