/ / Hide Prexcept Prompt-Ausgabe - Python, SSH, Pexpect

Hide Prexcept Prompt-Ausgabe - Python, SSH, Pexpect

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 № 1

Die 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.