Ich verwende pexpect, um eine Reihe von Befehlen an einen Remote-Computer auszuführen und möchte den Exit-Status jedes Befehls abrufen. Wenn ich jedoch versuche, den Exit-Status abzurufen, erhalte ich den falschen Wert. Gibt es eine Möglichkeit, den richtigen Exit-Status mit PSSP von Pexpect zu erhalten? Hier ist der Code, den ich mit der Ausgabe versucht habe. Der Befehl war erfolgreich, aber die Exit-Status gegeben wurde 255 anstelle von 0.Python Pexpect pxssh Abrufen des Exit-Status
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)
Ausgang:
uptime
09:10:39 up 10 days, 17:35, 4 users, load average: 0.12, 0.18, 0.16
s exitstatus= 255
Vielen Dank, dass meine Frage präzise beantwortet. Eine weitere Folgefrage ist da ein Weg, nur die Ausgabe des Befehls anstelle von Befehl und Ausgabe zu drucken? – MBasith
1) Sie können die Zeichenfolge mit Python-Funktionen analysieren; 2) Sie können 'sendline ('stty -echo')' versuchen, bevor Sie andere Befehle senden. Es ist nicht einfach, Beispielcode in die Kommentare einzufügen. Sie können eine neue Frage stellen. – pynexj