System : Ubuntu 14.04 LTS
==================================================================
script 수행을 위해서는 expect 가 설치되어 있어야 한다.
$ sudo apt-get install expect
expect 명령어는 아래와 같이 정의되어 있다. (자세한 내용은 링크 참조)
- Expect is a program that "talks" to other interactive programs according to a script.
- expect 기본 명령
- spawn : 명령어를 실행한다.
- expect “문자열” : “문자열"을 만나면
- send “문자열\r” : "문자열"을 전송한다.
- interact : expect를 끝내고 사용자에게 제어권을 넘긴다.
- expect eof : expect 종료
==================================================================
[ Script Sample ]
사용자 옵션이 없을 경우, script에 정의된 default parameter를 기준으로 동작하도록 정의한다.------------------------------------------------------------------------------------------------
[ Sample code]
file path : $HOME/bin/git-pull
#!/bin/bash
# Username &
Password
USERNAME=USER_NAME ## set user.name for git repository
PASSWD=PASSWORD ## set password for git repository
# Default Working
directory
WORKDIR=$HOME/work ## set default working directory
# Help function
usage() {
echo "usage :
$0 [OPTIONS]"
echo " -h : Display Usage"
echo " -d : Working Directory"
echo " -u : Username"
echo " -p : Password"
exit 0
}
# Git pull
func_gitpull() {
cd $WORKDIR
expect <<EOF
spawn git pull
expect
"Username"
send $USERNAME\r
expect
"Password"
send $PASSWD\r
expect eof
EOF
}
# Update params
while getopts
"h:d:u:p:" opt
do
case $opt in
d) WORKDIR=$OPTARG
;;
u) USERNAME=$OPTARG
;;
p) PASSWD=$OPTARG
;;
h) usage ;;
?) usage ;;
esac
done
func_gitpull
------------------------------------------------------------------------------------------------