我在一个文件中有一个 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 循环的脚本有什么问题?