[英]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.