簡體   English   中英

無法使用Pexpect在SSH上獲取“ LS”輸出

[英]Not able to get 'LS' output on SSH using Pexpect

我正在嘗試使用pexpect連接到localhost上的SSH,並嘗試在建立SSH會話后列出文件。 會話已建立,但沒有得到“ ls”的輸出。 我已經可以在FTP中執行此操作,但不能使用SSH,這是以下代碼:

import pexpect
import time
import sys
child=pexpect.spawn('ssh 127.0.0.1')
child.logfile=sys.stdout
child.expect('[P|p]assword')
child.sendline('abcd@123?')
child.expect('Welcome')
print child.before,
print child.after
time.sleep(3)
child.sendline('ls -l')
time.sleep(3)
child.expect('$')
print child.before,
print child.after
child.sendline('logout')
child.close

在這里,我也嘗試使進程休眠,但是它在本地主機的SSH橫幅之間打印'ls -l'。 但不列出文件。 請提供一些提示。 進一步的plz建議一些不錯的書或鏈接,以深入研究python以達到測試目的。 非常感謝...(我將僅在12個小時后上線,現在該睡覺了)

傳遞給expect()的模式是一個正則表達式,而不是文字字符串。 因此$匹配字符串的結尾,由於pexpect的工作方式,該字符串可以在任何地方。

您可以轉義美元符號- \\$ -或使用expect_exact() ,該字符串采用純字符串。

暫無
暫無

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

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