상세 컨텐츠

본문 제목

ubuntu linux 사용자 입력을 자동으로 해주는 프로그램 expect

IT : Ubuntu

by 휀스 2016. 4. 27. 03:24

본문

Linux 사용시 shell script 에서 사용자 입력을 받아야 하는 경우가 있다 이럴 경우 자동화를 하는데 문제가 발생하는데 이를 해결해 주는 방법은 expect 라는 프로그램을 사용하는 것이다.


expect 는 몇가지 명령으로 interactive 한 shell 프로그램을 사용하도록 해준다.


기본적인 포맷은 아래와 같다.


#!/usr/bin/expect -f

set timeout 10

set build_opt [lindex $argv 0];

spawn ./build_android.sh

expect {

        "Which would you like" {

                send "$build_opt\r"

        }

        failed             {exit 1}

        timeout            {exit 1}

}


1줄은 해당 file을 실행하면 expect 로 실행하라는 명령


#!/usr/bin/expect -f


2번째 줄은 한개의 expect 명령을 실행할 때 최대 wait 시간


set timeout 10


3번째 줄은 실행시 사용할 option 을 받아옴


set build_opt [lindex $argv 0];


4번째 줄은 실제로 실행할 shell script 또는 실행파일


spawn ./build_android.sh



5번째 expect 부터는 세부 옵션 설정


6 번째 줄은 ./build_android.sh 의 output 을 기다리다가 해당 문구 "Which would you like" 가 나올때 7 번째 줄의 "$build_opt\r" 을 실행함


9번째 줄 은 실행 시 error 가 발생하였을 경우 처리하는 부분. 이 부분이 없으면 error 처리가 되지 않고 이후 부분이 계속 실행됨.


failed             {exit 1}


10번째 줄은 2번째 줄에서 설정한 timeout 시간이 넘었을 경우 error 처리 부분.


timeout            {exit 1}


이와 같은 형식으로 5번째 line 에서 11 번째 line 까지의 내용을 적절히 수정하여 순차적으로 실행 하도록 하면 됨.



이상 ubuntu linux 사용자 입력을 자동으로 해주는 프로그램 expect 이였습니다.

관련글 더보기