Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/elixir/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux 如何从bash获取telnet命令的输出?_Linux_Windows_Bash_Telnet - Fatal编程技术网

Linux 如何从bash获取telnet命令的输出?

Linux 如何从bash获取telnet命令的输出?,linux,windows,bash,telnet,Linux,Windows,Bash,Telnet,我试图从Linux获取Windows机器上运行的进程列表,但在脚本中执行时没有任何输出。如果我手动使用telnet并使用命令pslist,我会得到进程的完整列表,但不会在脚本中 下面是bash脚本(减去变量): 我用bash pslist.sh简单地调用它,输出如下: telnet> Trying ip_address... Connected to ip_address. Escape character is '^]'. Welcome to Microsoft Telnet Serv

我试图从Linux获取Windows机器上运行的进程列表,但在脚本中执行时没有任何输出。如果我手动使用telnet并使用命令pslist,我会得到进程的完整列表,但不会在脚本中

下面是bash脚本(减去变量):

我用
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的脚本编写非常复杂。如果在命令之间添加更长的
睡眠时间
,则可以更频繁地成功


更好的方法是切换到可正确编写脚本的客户端,即<代码>网络猫(又名
nc
)。更好的做法是在Windows机箱上安装一个SSH服务器(可能出于安全考虑,只允许从网络内部访问它),并使用无密码身份验证进行设置。然后您可以简单地
sshuser@ipaddresspslist

用\r字符终止每个
echo
,如下:
echo-e“${user}\r”

尝试用\r字符终止每个
echo
,如下:`echo-e“${user}\r”echo有许多可移植性问题,不应与选项标志一起使用。考虑Primtf替代:<代码> Prtuf的名称:%s\n“$NeX”< /C>我建议使用
expect
编写telnet脚本。您可以在这里了解并下载它:这里有一个使用它的telnet脚本示例:@nsilent22谢谢,就是这样:)您可以将其作为答案发布吗?@Baptistewich:Done。为了便于移植,
printf
绝对优于
echo
(带或不带
-e
)以及带或不带转义码,这在某些方言中受支持,但在其他方言中不受支持。使用
printf
,所有这些都得到了适当的标准化。
telnet> Trying ip_address...
Connected to ip_address.
Escape character is '^]'.
Welcome to Microsoft Telnet Service 

login: my_loginmy_passwordpslistConnection closed by foreign host.