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

관련 정보