140 likes | 239 Views
Lecture 5. 기본 셸 프로그래밍. Spring 2006 Course, Sungkyunkwan University Hyunseung Choo choo@ece.skku.ac.kr. 내용. 셸 스크립트와 함수 셸 변수 문자열 연산자 명령 대체. 셸 스크립트와 함수. 셸 스크립트 정의 셸 명령들을 나열한 파일 실행 권한 부여 chmod +x scriptname 실행 방법 source scriptname ./scriptname. 셸 스크립트와 함수. 셸 스크립트 차이점.
E N D
Lecture 5. 기본 셸 프로그래밍 Spring 2006 Course, Sungkyunkwan University Hyunseung Choo choo@ece.skku.ac.kr
내용 • 셸 스크립트와 함수 • 셸 변수 • 문자열 연산자 • 명령 대체
셸 스크립트와 함수 • 셸 스크립트 • 정의 • 셸 명령들을 나열한 파일 • 실행 권한 부여 • chmod +x scriptname • 실행 방법 • source scriptname • ./scriptname
셸 스크립트와 함수 • 셸 스크립트 • 차이점 source alice hatter gryphon % 셸 : ./alice % 셸 : hatter gryphon 하위 셸 : % ./alice & 셸 : hatter gryphon 하위 셸 :
셸 스크립트와 함수 • 함수 • 특징 • 수행속도가 빠름 • 모듈 방식의 코드 구성이 용이함 • 함수 정의하기 • 함수 해제 하기 • unset –f functname • 함수 정의 확인하기 • declare –f function functname { shell commands } functname() { shell commands } ※ createfunc, dodo
셸 변수 • Introduction • 변수 : 데이터를 담는 그릇 • 변수명 앞에 ‘$’를 붙여서 다룸 • 내장 변수, 환경 변수 • 위치 매개변수 (positional parameters) • $1, $2, $3, … • 매개변수로 넘어온 매개변수 • $* • 모든 위치 매개변수로 구성된 단일 문자열 • $@ • “$1”, “$2”, “$3”, … “$n” • n 개의 독립된 문자열 • 함수에서도 동일하게 사용 ※ alice
셸 변수 • 위치 매개변수 • 전역적 변수 script ascript var $var1 - only script $0 var $1 - only function $2 var - script & function function afunc $1 $2 ※ ascript
셸 변수 • 함수의 지역변수 script ascript $var1 var $0 - only script $1 var - only function $2 var function afunc - script & function $var1 $1 $2 ※ ascript
셸 변수 • $@와 $*의 인용부호 처리 • $*는 IFS를 구분자로 사용한 단일 문자열 • $@는 인용부호 처리한 n개의 독립 문자열 Arguments : arg1 arg2 arg3 arg4 IFS : ‘,’ $* : “arg1,arg2,arg3,arg4” $@ : “arg1”, “arg2”, ”arg3”, “arg4” ※ countarg
셸 변수 • 변수의 추가 문법 내용 • ${varname} • 변수 이름을 보다 확실하게 선언 • echo ${UID}_ • cf) echo $UID_ • 매개변수가 10개 이상인 경우 • ${10}, ${11}, … • cf) $10, $11, … ※ tenargs
문자열 연산자 • 문자열 연산자들 ※ stringop
문자열 연산자 • 문자열 연산자들 구문 결과 ${path##/*/} /home/cam/book/long.file.name ${path#/*/} /home/cam/book/long.file.name $path /home/cam/book/long.file.name ${path%.*} /home/cam/book/long.file.name ${path%%.*} /home/cam/book/long.file.name ※ echopath
명령 대체 • 쓰임 • 유닉스 명령어의 표준 출력 결과를 변수로 사용 • 문법 • $(command) • 예 • $(pwd) • $(ls $HOME) • $(ls $(pwd)) ※ mailtoall
강의 중 실습 내용 • 실행 • 1 • % source filename • % declare –f • 2 • % source filename • % type –all dodo • 3 ~ 9 • % filename • 소스파일들 • createfunc • dodo • alice • ascript • countarg • tenargs • stringop • echopath • mailtoall • 다음 명령어를 이용해서 복사 • cp /user9/2000US/imcliff/practice4/4thweek/* ~/mybin/