我正在尝试从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.
我做错了什么?
答案 0 :(得分:3)
telnet
编写脚本非常棘手。如果在命令之间添加更长的静止sleep
,则可以更频繁地成功。
更好的方法是切换到正确的可编写脚本的客户端,即。 netcat
(又名nc
)。更好的方法是在Windows机器上安装SSH服务器(可能只是为了安全性,只能从网络内部访问)并使用无密码身份验证进行设置。然后你可以简单地ssh user@ipaddress pslist
答案 1 :(得分:2)
使用\ r \ n字符终止每个echo
,如下所示:echo -e "${user}\r"