Unix - Expect Shell - 在 while 循环上使用 ifcondition 的语法

Unix - Expect Shell - 在 while 循环上使用 ifcondition 的语法

我一直在 AIX 操作系统上编写一个 Expect 脚本。该脚本应从 while 循环的输入文件中选择服务器列表,并使用 if 条件来匹配特定模式,然后继续。 else 继续 else 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

相关内容