Unix - シェル予測 - whileループでifconditionを使用するための構文

Unix - シェル予測 - whileループでifconditionを使用するための構文

私はAIXオペレーティングシステムでExpectスクリプトを書いてきました。スクリプトは、whileループの入力ファイルからサーバーのリストを選択し、続行する前にif条件を使用して特定のパターンと一致する必要があります。それ以外の場合は続行し、次の手順に進みます。

残念ながら、スクリプトは出力を提供しません。エラーを報告したり、何も印刷しないでください。

パスワード:

#!/usr/bin/expect
set timeout 15
#exp_internal 1
set ip_file "host.txt"
set fid [open $ip_file r]
while {[gets $fid ip] != -1} {
      if  {[regexp  \[AU*N\]\[Z\]\[1\]\[7\]\+ $ip]} {
           puts "Server Belongs to APC"  
           spawn ssh -J lauk576 padmin@$ip;
           expect "Password:";
           send "Helloworld123\n";
           expect "$";
           send "oem_setup_env\n";
           expect "#";
           send {lsmcode -A | sed -e "s/^/$(uname -n): /"};
           send "\n";
           expect "#";
           send "exit\n";
           expect "$";
           send "exit\n" ;
           expect eof
      } elseif {[regexp  \[EMEA*LC\]\[T\]\+ $ip]} {
                puts "Server Belongs to EMEA "  
                           expect eof
         }

 }         
close $fid

関連情報