簡體   English   中英

輸入鍵命令有時在預期中不起作用

[英]Enter key command doesn't work sometimes in pexpect

我在 pexpect 腳本下運行以登錄到 Avocent 控制台服務器以連接到網絡設備。 輸入服務器密碼后,需要按下“回車鍵”才能出現提示。 為了實現這一點,我嘗試了child.sendline()child.send('\n')child.sendcontrol ('m')但這些都不起作用。 我試過child.send('\r') ,但它間歇性地工作。 不知道是什么導致了這個問題。

我看到當腳本等待輸入鍵時,如果我手動登錄控制台並通過鍵盤發送輸入鍵,pexpect 腳本會繼續。

這是我的代碼片段:

child = pexpect.spawn('ssh local@x.x.x.x', timeout=120)
child.expect('Password:', timeout=60)
child.sendline(avocentpswd)
child.send('\r')
print "enter key sent"
cli = child.expect(['cisco#' , 'cisco>'])

使用 pexpect==4.7.0 Python 2.7.5 操作系統:RHEL v7

有人可以幫忙嗎。

我檢查了提出的問題,但這沒有幫助: pexpect 並發送“Enter Key”問題

您可能只需要等待一兩秒鍾讓 ssh 完成連接並將 tty 模式重置為回顯。 嘗試在發送\r之前添加import time;time.sleep(5) ,如果它有效,請使用類似(未測試)的循環:

for tries in range(5):
   child.send('\r')
   cli = child.expect([pexpect.TIMEOUT, 'cisco#' , 'cisco>'], timeout=1)
   if cli!=0: break
else: ... fail ...
... ok ...

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM