2017-11-30 18 views
0

bash 스크립트에서 스위치 이름을 전달합니다. bash 스크립트는 텍스트 파일을 반복하고 스위치 이름을 보냅니다. 경우에 따라 스위치가 응답하지 않으면 expect 스크립트가 중단됩니다. 스크립트가 잠시 동안 기다렸다가 다음 스위치로 이동하거나 적어도 나와야합니다. 타임 아웃을 사용했지만 도움이되지 않았습니다.원격 스위치가 expect 스크립트에서 응답하지 않는 경우 다음 명령을 계속하는 방법

set timeout 60 
. 
. 
. 
expect "*> " 
send "ssh -l admin $switchName.XXX.XXXXXX.net switchshow -portname > $filename1\r" 
sleep 2 
expect { 
     "*(yes/no)? " { 
       send "yes\r" 
       exp_continue 
     } 

     "*assword: " { 
       send "$password\r" 
     } 
     default { 
       exp_continue 
     } 
} 

모든 의견을 환영합니다.

답변

0

당신은 "타임 아웃"키워드를 볼 것으로 예상 할 : 당신이 ssh 명령이 완료 될 때까지 기대 "루프"에 남아 있도록 나는 또한 당신의 상태를 조금 업데이트

expect { 
     timeout { 
       puts "timed out waiting for $switchName" 
     } 
     "*(yes/no)? " { 
       send "yes\r" 
       exp_continue 
     } 

     "*assword: " { 
       send "$password\r" 
       exp_continue 
     } 
     eof 
} 

.