>>> from pexpect import pxssh
>>> s=pxssh.pxssh()
>>> s.login("10.10.62.253","USER","PASSWORD",auto_prompt_reset=True)
True
>>> s.sendline("echo Test");
10
>>> s.prompt()
True
>>> s.after
"[PEXPECT]# "
>>> s.PROMPT="BTEQ -- Enter your SQL request or BTEQ command:"
>>> s.sendline("bteq .logon dbc,dbc")
20
>>> s.prompt()
True
>>> s.after
"BTEQ -- Enter your SQL request or BTEQ command:"
>>> s.sendline("quit;")
6
>>> s.prompt()
False
>>> s.PROMPT="[PEXPECT]# "
>>> s.prompt()
False
>>> s.sync_original_prompt()
True
>>> s.prompt()
False
Nach meinem Verständnis nach s.sync_original_prompt()
, PROMPT
Die Variable sollte auf die ursprüngliche Eingabeaufforderung zurückgesetzt werden [PEXPECT]#
hier und s.prompt()
sollte dazu führen True
. Aber es tut es nicht. Kann mir bitte jemand sagen, wie man es zurücksetzt PROMPT
Variable zur ursprünglichen Eingabeaufforderung? und wie man es benutzt sync_original_prompt
Attribut?
Vielen Dank.
Antworten:
0 für die Antwort № 1Die Initiale
s.PROMPT
(eine Regexp-Zeichenfolge) ist eigentlich"\[PEXPECT\][\$\#] "
nicht[PEXPECT]#
. Ich würde vorschlagen, dass Sie so schreiben:savePrompt = s.PROMPT s.PROMPT = "a-new-prompt" s.sendline("bteq ...") s.prompt() # expect the new prompt s.PROMPT = savePrompt # restore the saved prompt s.sendline("quit;") s.prompt() # expect the saved prompt
sync_original_prompt()
sollte so verwendet werden:s.sync_original_prompt() # this make sure you are at the prompt s.set_unique_prompt() # change the shell"s prompt to the default PROMPT s.sendline("run some command") s.prompt()