ファイルに IP アドレスのリストがあり、telnet を使用してログインし、いくつかのコマンドを実行する必要があります (コマンドはすべてのマシンで一意ではないため、完全に自動化することはできません)。
以下は、タスクを部分的に自動化するスクリプトです (つまり、IP アドレスに telnet してログイン画面を表示します。その telnet セッションを終了すると、スクリプトはファイルに存在する次の IP アドレスに対して telnet する必要があります。
上記のタスクを達成するために、 forループを使用するスクリプトとwhileループを使用するスクリプトの 2 つ (どちらも同じ仕事をします) を作成しました。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
上記の失敗したループ スクリプトの出力は次のとおりです。
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 ループを使用するスクリプトの何が問題になっていますか?