링크 ux 에서 expect 의 소개 와 사용 예제

2336 단어
개술
우 리 는 Shell 을 통 해 순환, 판단 등 간단 한 흐름 제어 기능 을 실현 할 수 있다.그러나 상호작용 이 필요 한 상황 에 대해 서 는 인공 적 으로 관여 해 야 한다. 가끔 우 리 는 텔 넷 서버 등 과 상호작용 을 하 는 기능 을 실현 해 야 할 수도 있다.expect 는 이러한 기능 을 실현 하 는 도 구 를 사용한다.
expect 는 사람의 간섭 없 이 자동 과 상호작용 임 무 를 실현 하 는 무료 프로 그래 밍 도구 언어 입 니 다.Expect 의 저자 Don Libes 는 1990 년 Expect 를 작성 하기 시 작 했 을 때 Expect 에 대해 다음 과 같은 정 의 를 내 렸 다. Expect 는 자동 상호작용 기능 을 실현 하 는 소프트웨어 세트 (Expect [is a] software suite for automating inteactive tools) 이다.시스템 관리자 의 스 크 립 트 를 사용 하면 명령 이나 프로그램 에 대한 입력 을 실현 할 수 있 습 니 다. 이 명령 과 프로그램 은 터미널 (terminal) 에서 입력 을 받 기 를 원 합 니 다. 일반적으로 이 입력 은 수 동 으로 입력 해 야 합 니 다.expect 는 프로그램의 알림 시 뮬 레이 션 표준 입력 에 따라 프로그램 에 필요 한 입력 을 제공 하여 상호작용 프로그램 을 실행 할 수 있 습 니 다.간단 한 BBS 챗 봇 을 실현 할 수도 있다.:)
expect 는 끊임없이 발전 하 는 것 이다. 시간 이 흐 르 면서 그 기능 은 점점 강해 지고 시스템 관리자 의 강력 한 조수 가 되 었 다.Expect 는 Tcl 프로 그래 밍 언어 지원 이 필요 합 니 다. 시스템 에서 Expect 를 실행 하려 면 먼저 Tcl 을 설치 해 야 합 니 다.
2. 기대 작업 원리
가장 간단 한 차원 에서 말하자면, Expect 의 작업 방식 은 유 니 버 설 화 된 Chat 스 크 립 트 도구 와 같다.Chat 스 크 립 트 는 컴퓨터 간 연결 이 필요 할 때 특정 로그 인 세 션 의 자동 화 를 위해 UUCP 네트워크 에 최초 로 사 용 됩 니 다.
Chat 스 크 립 트 는 일련의 expect - send 쌍 으로 구성 되 어 있 습 니 다. expect 대기 출력 에서 특정한 문 자 를 출력 합 니 다. 보통 프롬프트 다음 에 특정한 응답 을 보 냅 니 다.예 를 들 어 아래 의 Chat 스 크 립 트 는 표준 출력 을 기다 리 는 로그 인 문자열 을 구현 하고 somebody 를 사용자 이름 으로 보 냅 니 다.그리고 Password: 프롬프트 를 기다 리 고 응답 sillyme 을 보 냅 니 다.
인용: 로그 인: 누 군가 비밀번호: sillyme
이 스 크 립 트 는 로그 인 과정 을 실현 하고 특정한 사용자 이름과 비밀번호 로 로그 인 합 니 다.
expect 의 가장 간단 한 스 크 립 트 작업 모드 는 본질 적 으로 Chat 스 크 립 트 작업 모드 와 같 습 니 다.
3. 하나의 예:

#!/usr/bin/expect -f 
set ip [lindex $argv 0 ]  //       ,   IP 
set password [lindex $argv 1 ] //       ,      
set timeout 10     //       
spawn ssh root@$ip  //  ssh �E 
expect {     //       
 "*yes/no" { send "yes\r"; exp_continue} //   ssh     yes/no,   
 "*password:" { send "$password\r" }  //      ,     
} 
interact   //    ,             . 

실행 결과:

root@ubuntu:/home/zhangy# ./test.exp 192.168.1.130 admin 
spawn ssh [email protected] 
Last login: Fri Sep 7 10:47:43 2012 from 192.168.1.142 
[root@linux ~]# 

총결산
이상 은 Liux 에서 expect 예제 를 사용 하 는 모든 내용 입 니 다. 본 고의 내용 이 여러분 의 학습 이나 업무 에 어느 정도 도움 이 되 기 를 바 랍 니 다. 궁금 한 점 이 있 으 면 댓 글 을 남 겨 주 십시오.

좋은 웹페이지 즐겨찾기