0
我正在使用pexpect将一系列命令运行到远程计算机,并希望获取每个命令的退出状态。但是,当我尝试检索退出状态时,我得到的值不正确。有没有办法使用Pexpect的pxssh来获得正确的退出状态?这里是我与输出一起尝试的代码。命令成功,但给定的退出状态为255而不是0Python Pexpect pxssh获取退出状态
from pexpect import pxssh
try:
s = pxssh.pxssh(timeout=30, maxread=2000000, options={
"StrictHostKeyChecking": "no",
"UserKnownHostsFile": "/dev/null"})
hostname = 'my_hostname'
username = 'username'
password = 'my_pass'
s.login (hostname, username, password, port=22, auto_prompt_reset=False)
s.PROMPT = '*$'
s.sendline('uptime')
s.prompt()
print(s.before.decode('utf-8'))
s.close()
print('s exitstatus=', s.exitstatus)
except pxssh.ExceptionPxssh as e:
print("pxssh failed on login.")
print(e)
输出:
uptime
09:10:39 up 10 days, 17:35, 4 users, load average: 0.12, 0.18, 0.16
s exitstatus= 255
谢谢你,那恰好回答了我的问题。还有一个后续问题是否有一个只打印命令的输出而不是命令和输出? – MBasith
1)你可以使用Python函数解析字符串; 2)在发送其他命令之前,您可以尝试sendline('stty -echo')'。将示例代码粘贴到评论中并不容易。你可以问一个新问题。 – pynexj