我正在尝试编写一个脚本来允许我登录到控制台服务器的 48 个端口,以便我可以快速确定哪些设备连接到每条串行线路。
本质上,我希望能够有一个脚本,给定主机/端口列表,远程登录到列表中的第一个设备,并使我处于交互模式,以便我可以登录并确认设备,然后当我关闭telnet 会话,连接到列表中的下一个会话。
我面临的问题是,如果我从可执行 bash 脚本中启动 telnet 会话,会话会立即终止,而不是等待输入。
例如,给出以下代码:
$ cat ./telnetTest.sh
#!/bin/bash
while read line
do
telnet $line
done
$
当我运行命令 'echo "hostname" | testscript.sh' 我收到以下输出:
$ echo "testhost" | ./telnetTest.sh
Trying 192.168.1.1...
Connected to testhost (192.168.1.1).
Escape character is '^]'.
Connection closed by foreign host.
$
有谁知道如何阻止 telnet 会话自动关闭?
您需要将终端输入重定向到telnet
过程。这应该是/dev/tty
。所以你的脚本看起来像这样:
#!/bin/bash
for HOST in `cat`
do
echo Connecting to $HOST...
telnet $HOST </dev/tty
done
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)