Ich schreibe ein Programm in Python 2.7 erstellt eine SSH-Verbindung und gibt die Ergebnisse des eingegebenen Befehls aus. Es funktioniert gut, aber ich möchte die Prompt-Ausgabe ausblenden, oder gibt es alternativ eine Möglichkeit, die Notwendigkeit für die Eingabeaufforderung zu beseitigen?
Dies ist mein Code, der für die Ausgabe verantwortlich ist:
if cmd == "!":
print ("Connection terminated.")
self.session.logout()
sys.exit(0)
else:
self.session.sendline(cmd)
with suppress_stdout():
self.session.prompt()
return self.session.before
Eine Beispielausgabe (Ich möchte das zweite "ls" loswerden):
-> ls
ls
bin dev initrd.img lib32 lost+found opt run sys var
boot etc initrd.img.old lib64 media proc sbin tmp vmlinuz
cdrom home lib libx32 mnt root srv usr vmlinuz.old
->
Antworten:
0 für die Antwort № 1Die pexcept prompt () ist ein Spezialfall derexcept (), das die meisten Arten von Eingabeaufforderungskennungen erkennt. self.session.before hat alles zwischen der zuletzt verwendeten Eingabeaufforderung und der zu verwendenden Eingabeaufforderung genommen; mit anderen Worten, er nahm den eingegebenen Befehl und die Ausgabe. Um den wiederholten Befehl loszuwerden, eliminiere einfach das erste Wort der Zeichenkette. Ich tat dies, indem ich die Zeichenfolge in eine Liste aufteilte und dann alles außer dem ersten Element der Liste ausgab.