【发布时间】:2021-07-22 22:45:07
【问题描述】:
我在一个文件中有一个 IP 地址列表,我需要使用 telnet 登录并执行 一些命令(这些命令并非对所有机器都是唯一的,因此不能完全自动化。)。
所以下面是部分自动化任务的脚本(即远程登录到 IP 地址并显示登录屏幕,一旦退出该远程登录会话,脚本应该远程登录文件中存在的下一个 IP 地址等等。
我已经编写了两个脚本(都做同样的工作)来完成上述任务,一个使用 for 循环,一个使用 while 循环。使用 for 循环的脚本工作正常,而使用 while 循环的脚本在登录到第一个 ip 后退出。
使用 for 循环的脚本:-
for i in `cat host_ip.txt`;
do
telnet $i;
done
使用 while 循环失败的脚本:-
while read line;
do
telnet $line ;
done < host_ip.txt
上面失败的while循环脚本的输出是
10.102.10.0
Trying 10.102.10.0...
telnet: connect to address 10.102.10.0: Network is unreachable
10.102.10.1
Trying 10.102.10.1...
Connected to 10.102.10.1.
Escape character is '^]'.
Connection closed by foreign host.
使用while循环的脚本有什么问题?
【问题讨论】:
标签: bash