IT/Programing

[Expect] 함수 사용법

착한아줌마 2020. 5. 7. 23:23
반응형

 

 

 

 

 

 

 

expect에서 함수 사용 법

 

 

 

 

 

아래 형식으로 코드 상단 부에 선언

 



 proc 함수명 {인자} {
           내용
 }

 

 

 

 

사용은 그냥 함수명 한칸 띄고 매개변수 적으면 된다.

 

아래는 예제

 

 

 



 #!/usr/bin/expect -f


 set ID [lindex $argv 0]
 set PASSWD [lindex $argv 1]
 set IP [lindex $argv 2]


 # 함수 선언
 proc connect {PASSWD} {
         expect {
                 "*assword: " {
                         send "$PASSWD\n"
                         delimiter
                         expect {
                                 "*#" {
                                         return 0
                                 }
                         }
                }
         }
         puts " -Error. login\n"
         return 1
 }    


 # 명령어 실행
 spawn ssh $ID@$IP  


 # 함수 실행해서 결과값에 맞춰 처리
 set RESULT [connect $PASSWD]
 if { $RESULT != 0 } {
         puts "-- exit --"
         exit 1
 }
 puts "-- success --"   
 
 expect "*#" {
         send "exit\n"
 }
 
 # 종료
 expect eof
 
 

 

 

스크립트에 id, password, ip주소를 매개변수로 받아서

 

ssh로 접속하고

 

실패하면 exit 찍고 종료

 

성공하면 success 찍고 엔터한번 치고 종료