我试图从Linux上获取在Windows机器上运行的进程列表,但是当我在脚本中执行此操作时,我没有得到任何输出。如果我手动使用telnet并使用pslist命令,我会得到完整的进程列表,但不会在我的脚本中。如何从bash获取telnet命令的输出?
这里是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.
我在做什么错?
尝试终止每个'echo'与\ r字符,就像这样:'回声-e “$ {}用户\ r” – nsilent22
echo有许多可移植性问题,不应该与选项标志一起使用。请考虑使用printf:'printf'name:%s \ n'“$ name”'。 http://wiki.bash-hackers.org/commands/builtin/echo | http://cfajohnson.com/shell/cus-faq.html#Q0b | http://www.in-ulm.de/~mascheck/various/echo+printf –
我会建议使用'expect'来编写telnet脚本。您可以在这里了解并下载它:http://expect.sourceforge.net/有一个示例telnet脚本在此处使用它:http://stackoverflow.com/questions/7789710/expect-script-to-automate-telnet -login –