簡體   English   中英

如何從bash獲取telnet命令的輸出?

[英]How to get the output of a telnet command from bash?

我正在嘗試從Linux獲取在Windows計算機上運行的進程的列表,但是在腳本中執行此操作時沒有任何輸出。 如果我手動使用telnet並使用pslist命令,則可以獲取完整的進程列表,但不能在腳本中找到。

這是bash腳本(減去變量):

( echo open ${host}
sleep 1
echo ${user}
sleep 3
echo ${pass}
sleep 1
echo pslist
sleep 2
 ) | telnet

我只是用bash pslist.sh來調用它,輸出是這樣的:

telnet> Trying ip_address...
Connected to ip_address.
Escape character is '^]'.
Welcome to Microsoft Telnet Service 

login: my_loginmy_passwordpslistConnection closed by foreign host.

我究竟做錯了什么 ?

眾所周知, telnet很難編寫腳本。 如果在命令之間添加更長的靜止sleep ,則可能能夠更成功地完成任務。

更好的方法是切換到可正確編寫腳本的客戶端,即。 netcat (aka nc )。 最好還是在Windows機器上安裝SSH服務器(也許出於安全性考慮,只能從網絡內部對其進行訪問),然后使用無密碼身份驗證進行設置。 然后您可以簡單地ssh user@ipaddress pslist

用\\ r字符終止每個echo ,如下所示: echo -e "${user}\\r"

暫無
暫無

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

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