>>> 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
Selon ma compréhension après s.sync_original_prompt()
, PROMPT
variable doit réinitialiser à l'invite initiale, qui est [PEXPECT]#
ici et s.prompt()
devrait aboutir à True
. Mais il ne "t. Quelqu'un peut-il me dire s'il vous plaît comment réinitialiser PROMPT
variable à l'invite d'origine? et comment utiliser sync_original_prompt
attribut?
Merci.
Réponses:
0 pour la réponse № 1La première
s.PROMPT
(une chaîne d'expression rationnelle) est en fait"\[PEXPECT\][\$\#] "
, ne pas[PEXPECT]#
. Je vous suggère d’écrire comme ceci: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()
devrait être utilisé comme ceci: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()