这是一个简单的代码,可以登录到linux框中,并对框中的资源执行grep。我只需要能够查看我执行的命令的输出,但不返回任何内容。代码不会报告任何错误,但不会写入所需的输出。
以下是代码:
import socket
import re
import paramiko
ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh.connect('linux_box', port=22, username='abc', password='xyz')
stdin, stdout, stderr = ssh.exec_command('grep xyz *.set')
output2 = stdout.readlines()
type(output2)
这是我得到的输出:
C:\ Python34 \ python.exe C:/Python34/Paramiko.py
处理完成,退出代码为0
答案 0 :(得分:0)
您实际上从未将任何内容打印到标准输出。
将最后一行更改为print(output2)
应正确打印值。
您的代码可能基于交互式Python shell实验,其中隐式地将上次执行的命令的返回值打印到标准输出。在非交互模式下,不会发生此类行为。这就是你需要明确使用print
函数的原因。