Microsoft PowerPoint - 02-Shell-Programming

Similar documents
10 강. 쉘스크립트 l 쉘스크립트 Ÿ 쉘은명령어들을연속적으로실행하는인터프리터환경을제공 Ÿ 쉘스크립트는제어문과변수선언등이가능하며프로그래밍언어와유사 Ÿ 프로그래밍언어와스크립트언어 -프로그래밍언어를사용하는경우소스코드를컴파일하여실행가능한파일로만들어야함 -일반적으로실행파일은다

Microsoft PowerPoint UNIX Shell.pptx

Microsoft PowerPoint UNIX Shell.ppt

<4D F736F F F696E74202D20BFEEBFB5C3BCC1A6BDC7BDC D31C7D0B1E229202D20BDA92E BC8A3C8AF20B8F0B5E55D>

Linux SHELL

Microsoft Word - Lab_080104A.docx

Linux SHELL

PowerPoint 프레젠테이션

슬라이드 1

OCW_C언어 기초

Microsoft PowerPoint - 게시물2 - unix07.ppt [호환 모드]

1 Shell script What the shell?

PowerPoint 프레젠테이션

Content Shell 이란? Redirection & Pipes Shell Programming 변수 조건 프로그램제어 리스트 함수 Shell 에내장된명령 Here documents Page 2

Microsoft PowerPoint - u5.pptx

ksh프로그램문법.ppt

Microsoft PowerPoint - 05_(Linux)_(Fundamental)_Shell_Programming

Microsoft PowerPoint - comp_prac_081223_2.pptx

< E20C6DFBFFEBEEE20C0DBBCBAC0BB20C0A7C7D12043BEF0BEEE20492E707074>

untitled

PowerPoint 프레젠테이션

Microsoft PowerPoint - chap02-C프로그램시작하기.pptx

PowerPoint 프레젠테이션

Microsoft PowerPoint 웹 연동 기술.pptx

PowerPoint 프레젠테이션

/chroot/lib/ /chroot/etc/

Microsoft PowerPoint - 3ÀÏ°_º¯¼ö¿Í »ó¼ö.ppt

단위: 환경정책 형산강살리기 수중정화활동 지원 10,000,000원*90%<절감> 형산강살리기 환경정화 및 감시활동 5,000,000원*90%<절감> 9,000 4, 민간행사보조 9,000 10,000 1,000 자연보호기념식 및 백일장(사생,서예)대회 10

PowerPoint 프레젠테이션

2힉년미술

예제 1.1 ( 관계연산자 ) >> A=1:9, B=9-A A = B = >> tf = A>4 % 4 보다큰 A 의원소들을찾을경우 tf = >> tf = (A==B) % A

<4D F736F F F696E74202D20B8AEB4AABDBA20BFC0B7F920C3B3B8AEC7CFB1E22E BC8A3C8AF20B8F0B5E55D>

Java ...

우리나라의 전통문화에는 무엇이 있는지 알아봅시다. 우리나라의 전통문화를 체험합시다. 우리나라의 전통문화를 소중히 여기는 마음을 가집시다. 5. 우리 옷 한복의 특징 자료 3 참고 남자와 여자가 입는 한복의 종류 가 달랐다는 것을 알려 준다. 85쪽 문제 8, 9 자료

상품 전단지

::: 해당사항이 없을 경우 무 표시하시기 바랍니다. 검토항목 검 토 여 부 ( 표시) 시 민 : 유 ( ) 무 시 민 참 여 고 려 사 항 이 해 당 사 자 : 유 ( ) 무 전 문 가 : 유 ( ) 무 옴 브 즈 만 : 유 ( ) 무 법 령 규 정 : 교통 환경 재

2

DBPIA-NURIMEDIA

화이련(華以戀) hwp

ÆòÈ�´©¸® 94È£ ³»Áö_ÃÖÁ¾

歯1##01.PDF

<5BC1F8C7E0C1DF2D31B1C75D2DBCF6C1A4BABB2E687770>

120229(00)(1~3).indd

01Report_210-4.hwp

<C3D1BCB15FC0CCC8C45FBFECB8AE5FB1B3C0B0C0C75FB9E6C7E D352D32315FC5E4292E687770>



교육 과 학기 술부 고 시 제 호 초 중등교육법 제23조 제2항에 의거하여 초 중등학교 교육과정을 다음과 같이 고시합니다. 2011년 8월 9일 교육과학기술부장관 1. 초 중등학교 교육과정 총론은 별책 1 과 같습니다. 2. 초등학교 교육과정은 별책

시험지 출제 양식

177

제주어 교육자료(중등)-작업.hwp

¸é¸ñ¼Ò½ÄÁö 63È£_³»Áö ÃÖÁ¾

<C3D6C1BE5FBBF5B1B9BEEEBBFDC8B0B0DCBFEFC8A C3D6C1BEBABB292E687770>

초등국어에서 관용표현 지도 방안 연구

6±Ç¸ñÂ÷

과 위 가 오는 경우에는 앞말 받침을 대표음으로 바꾼 [다가페]와 [흐귀 에]가 올바른 발음이 [안자서], [할튼], [업쓰므로], [절믐] 풀이 자음으로 끝나는 말인 앉- 과 핥-, 없-, 젊- 에 각각 모음으로 시작하는 형식형태소인 -아서, -은, -으므로, -음

민주장정-노동운동(분권).indd

untitled

<C0CEBCE2BABB2D33C2F7BCF6C1A420B1B9BFAAC3D1BCAD203130B1C72E687770>


E1-정답및풀이(1~24)ok

<C1B6BCB1B4EBBCBCBDC3B1E2342DC3D6C1BE2E687770>

< BDC3BAB8C1A4B1D4C6C75BC8A3BFDC D2E687770>

교사용지도서_쓰기.hwp

최우석.hwp

cls46-06(심우영).hwp

時 習 說 ) 5), 원호설( 元 昊 說 ) 6) 등이 있다. 7) 이 가운데 임제설에 동의하는바, 상세한 논의는 황패강의 논의로 미루나 그의 논의에 논거로서 빠져 있는 부분을 보강하여 임제설에 대한 변증( 辨 證 )을 덧붙이고자 한다. 우선, 다음의 인용문을 보도록

0429bodo.hwp

伐)이라고 하였는데, 라자(羅字)는 나자(那字)로 쓰기도 하고 야자(耶字)로 쓰기도 한다. 또 서벌(徐伐)이라고도 한다. 세속에서 경자(京字)를 새겨 서벌(徐伐)이라고 한다. 이 때문에 또 사라(斯羅)라고 하기도 하고, 또 사로(斯盧)라고 하기도 한다. 재위 기간은 6

치밀한 시간 계산으로 한 치의 오차 없이 여행일정을 계획하지만, 상황이 항상 뜻대로 돌 아가지는 않는다. 인도에서는 철로가 끊겨 있기도 하고, 미국에서는 인디언의 공격을 받 기도 한다. 하지만 그는 항상 침착하고 냉정한 태도를 유지하며, 때로는 일정에 차질이 생 겨도

<C7CFB4C3B0F8BFF828C0FCC7CFC1F6B8F8C7D1C6EDC1F6292D31302E3128C3D6C1BE292D31302E31342E687770>

는 우연히 안나를 알게 되고, 이후 두 사람은 서로 격렬한 사랑에 빠진다. 결국 안나가 브 론스키의 아이를 임신하게 되자, 브론스키는 안나가 카레닌과 이혼하고 자기와 함께 새로 운 생활을 하길 바라지만, 안나는 아들 때문에 망설인다. 한편, 카레닌은 브론스키를 사랑 한

Microsoft PowerPoint 세션.ppt

PowerPoint 프레젠테이션

Microsoft PowerPoint - chap04-연산자.pptx

PowerPoint 프레젠테이션

USER GUIDE

PowerPoint 프레젠테이션

Visual Basic 반복문

Microsoft PowerPoint Predicates and Quantifiers.ppt

프로그래밍개론및실습 2015 년 2 학기프로그래밍개론및실습과목으로본내용은강의교재인생능출판사, 두근두근 C 언어수업, 천인국지음을발췌수정하였음

Microsoft PowerPoint - [2009] 02.pptx

PowerPoint 프레젠테이션

장: 200 세외수입 관: 210 경상적세외수입 항: 213 수수료수입 (단위:천원) [ 일반회계 ] 1,405,842 1,399,860 5,982 < 청소행정과 > 1,028,442 1,022,460 5,982 사업장종량제봉투 제작비용(30L) 79.43원*30,00


ABC 7장

Module 4 Active Directory Domain Services 관리자동화

Microsoft PowerPoint - chap05-제어문.pptx

(자료)2016학년도 수시모집 전형별 면접질문(의예과포함)(최종 ).hwp

Observational Determinism for Concurrent Program Security

<32B1B3BDC32E687770>

Secure Programming Lecture1 : Introduction

I 문학과 우리 사회 눈 은 다가오는 계절인 봄의 생명력과 연결되어 작품 전체의 분위 기를 주도하고 있다. 1. 문학과 인접 분야 바탕 학습 확인 문제 본문 009쪽 01 4 문학은 음악, 미술 등과 같이 예술의 한 갈래로, 다른 예술 갈래와 달리 언

PowerPoint Presentation

Microsoft PowerPoint 통신 및 압축 명령어.ppt

PowerPoint 프레젠테이션

4장.문장

Week5

PowerPoint Presentation

메일서버등록제(SPF) 인증기능적용안내서 (HP-UX - qmail) OS Mail Server SPF 적용모듈 (Perl 기반) 작성기준 HP-UX 11.11i qmail 1.03 spf-filter 년 6 월

Transcription:

2. 쉘프로그래밍 상명대학교소프트웨어학부

쉘 (Shell) 쉘 : 명령어해석기 단말기나파일로부터입력된명령을해석하여적절한명령을실행 시스템환경변경, 명령어입력편의를제공 쉘의종류 Bourne Shell(sh) /bin/sh Korn Shell(ksh) /bin/ksh C Shell(csh) /bin/csh Bourne Again Shell(bash) /bin/bash /etc/passwd 파일에서로그인직후사용되는쉘을확인 유닉스프로그래밍 - 상명대학교 2

쉘 (Shell) 명령어해석및실행 사용자가명령입력 해석 / 실행 내부명령 : 직접해당기능을수행 외부명령 : 해당프로그램을실행 ( 뒤따르는단어들은옵션으로넘겨줌 ) echo [ 문자열 ] $ echo date ( 또는 date, 또는 date ) date $ echo Today is `date` Today is 2003년 10월 11일 유닉스프로그래밍 - 상명대학교 3

쉘 (Shell) 쉘변수 사용자정의쉘변수 키워드쉘변수 $HOME : 홈디렉토리의절대경로명 $PATH : 명령을탐색할경로 $PS1 : 프롬프트형태 지역변수와전역변수 지역변수 : 현재쉘에서만유효 전역변수 : 자식쉘에서도유효 export [ 변수명 ] 유닉스프로그래밍 - 상명대학교 4

쉘 (Shell) 초기화 / 종료파일 : 쉘변수와실행시킬명령을저장.bash_profile,.bashrc.bash_logout 별칭 alias [ 별칭 = 명령 ] unalias 별칭 히스토리 ( 명령재실행 ).bash_history 파일에지난명령들이저장 확인 : history 명령 사용 : 키,!!,! 번호,! 패턴 유닉스프로그래밍 - 상명대학교 5

쉘프로그램 쉘프로그램 쉘이제공하는프로그래밍언어를이용하여만들어진프로그램 ( 파일 ) 쉘프로그램예 : 현재시스템에접속한사용자수 쉘프로그램사용 x who wc l [enter] 쉘프로그램사용 <how_many.sh> date echo 현재시스템에접속한사용자는 `who wc -l` 명입니다 유닉스프로그래밍 - 상명대학교 6

쉘프로그램 작성 일반텍스트파일로작성 첫줄에는실행할쉘이름을적어줌 : #!/bin/bash 실행 ( 예 : script.sh) chmod +x script.sh $ script.sh $ bash script.sh 유닉스프로그래밍 - 상명대학교 7

쉘프로그램 실행가능한파일만들기 : chmod 명령어 작성한쉘스크립트파일을실행가능한파일로만듬 chmod 명령어를사용하여해당파일의속성을변환 예 ) script.sh 의권한 $ chmod u+x script.sh $ chmod g+wx script.sh $ chmod a=rwx script.sh 문자 u g o a 문자 r w x - 연산자 + - = 그룹 누가영향을받는가? 사용자 / 자신 그밖의사용자 모든사용자 : ugo 조합대신에사용할수있다 허가권한범주 읽기허가권한 쓰기허가권한 실행허가권한 허가권한없음 허가권한범주에취해진특정행위 허가권한승인 허가권한거부 특정사용자에관한모든허가지정 유닉스프로그래밍 - 상명대학교 8

쉘프로그래밍의특징 간단한프로그램작성법을따른다 사용자사용권한을위한강력한도구이다 사용자파일에임의의명령어나일련의명령어를추가할수있다 실행파일의생성이가능하다 $ 프롬프트에실행파일의입력을통해간단하게실행할수있다 유닉스프로그래밍 - 상명대학교 9

쉘프로그래밍 - 변수 유닉스쉘도다른프로그래밍언어와마찬가지로변수를생성하여값을저장 변수에값을저장하기위해서간단한변수명생성후등호표시 (=) 를이용하여변수에값을저장 Ex) $ varible=3 $ echo $variable $ 3 유닉스쉘프로그래밍언어는정수형, 문자형, 부동소수점과같은자료형을지원하지않음 유닉스프로그래밍 - 상명대학교 10

쉘프로그래밍 - 변수 unset 명령어를사용하여변수를지우거나쉘스크립트가종료될때까지메모리에보존 ex) $ unset variable [Enter] 변수의출력 Echo 명령어를사용하여변수의내용을출력 ex) $ echo $variable 명령어치환 역인용부호 (``) 안에명령어를삽입하고명령어를실행할경우, 변수의출력에명령어의실행결과를치환 Ex)$ DATE=`date` [Enter] $ echo $DATE [Enter] 유닉스프로그래밍 - 상명대학교 11

쉘프로그래밍 - 변수 쉘스크립트는특수한변수 ( 위치변수또는매개변수 ) 에있는명령라인으로부터 10 개의명령라인매개변수 ( 인자 ) 를읽을수있음 명령라인인자는보통명령어를공백으로구분하여입력 입력된인자는프로그램에서처리되며, 프로그램의동작이나특별한명령에서실행할수있도록변경 유닉스프로그래밍 - 상명대학교 12

쉘프로그래밍 - 변수 변수 $0 $1, $2, $9 $# $@ $? $* $$ 의미명령라인에입력된스크립트의이름을포함첫번째부터아홉번째까지각각의명령라인파라미터를포함명령라인파라미터의개수를포함모든명령라인파라미터를포함마지막명령어의결과에대한상태값을포함모든명령라인파라미터를포함수행중인프로세스의 PID를포함 유닉스프로그래밍 - 상명대학교 13

쉘프로그래밍 - 변수 변수사용예입력 <variable-1.sh> echo "The following is output of the $0 script:" echo "Total number of command line arguments: $#" echo "The first parameter is: $1 " echo "The second parameter is: $2 " echo "This is the list of all is parameters: $* " $ bash variable-1.sh $ bash variable-1.sh is empty 유닉스프로그래밍 - 상명대학교 14

쉘프로그래밍 - 변수 변수사용예입력 <variable-2.sh> date set `date` echo $1 set `date` echo $1 $2 set `date` echo $1 $2 $3 set `date` echo $1 $2 $3 $4 유닉스프로그래밍 - 상명대학교 15

쉘프로그래밍 조건과테스트 쉘스크립트를작성하는데필요한제어를통해다른명령어의결과에따라명령어가수행하도록작성 if-then 구조 if 문장은조건이참인지, 거짓인지를확인하는메커니즘을제공 if 문장의수행결과에따라프로그램에서명령어수행의순서를변경 if [condition] then commands. last command fi 유닉스프로그래밍 - 상명대학교 16

쉘프로그래밍 조건과테스트 if-then 구조사용예 <if_then.sh> DIR=$HOME/unix if [ $# = 1 ] then cp $1 $DIR fi exit 유닉스프로그래밍 - 상명대학교 17

쉘프로그래밍 조건과테스트 if-then-else 구조 if 구조에 else 절을추가함으로써, 거짓상태를반환하는경우수행하는명령어들을정확히입력할수있도록해줌 if [condition] then true-commands last-true-command else false-commands. last-false-command fi 유닉스프로그래밍 - 상명대학교 18

쉘프로그래밍 조건과테스트 if-then-else 구조사용예 <if_then_else.sh> DIR=$HOME/unix if [ $# = 1 ] then cp $1 $DIR Else echo You must specify a file name. Try again. fi exit 유닉스프로그래밍 - 상명대학교 19

쉘프로그래밍 조건과테스트 if-the-elif 구조 스크립트파일에 if 와 else 구조를연속해서여러번사용하는경우, elif 문장을사용 if [condition] then command-1 elif [condition_2] then command-2 else command -3 fi 유닉스프로그래밍 - 상명대학교 20

쉘프로그래밍 조건과테스트 참또는거짓 : test 명령어 test 는표현식이참또는거짓을경우해당하는값을반환하는쉘명령에내장된명령어 <test.sh> echo "Are you OK?" echo -e "Input Y for yes and N for no : \c" read answer if test "$answer" = Y then echo "Glad to hear that" else echo "Go home!" fi exit 유닉스프로그래밍 - 상명대학교 21

쉘프로그래밍 조건과테스트 서로다른범주시험하기 test 명령을시험하기위해서두개의정수를사용 논리연산자로두수를비교하는표현을조립 ex) $ test expression_1 logical operator expression_2 논리연산자 and 논리연산자 (-a) : 양쪽상태가참일경우 0을반환 or 논리연산자 (-o) : 양쪽중하나의상태가참일경우 0을반환 not 논리연산자 (!) : 상태가거짓을경우 0을반환 유닉스프로그래밍 - 상명대학교 22

쉘프로그래밍 조건과테스트 연산자 예제 의미 -eq -ne -gt -ge -lt -le number1 eq number2 number1 ne number2 number1 gt number2 number1 ge number2 number1 lt number2 number1 le number2 number1은 number2와같은가? number1은 number2와같지않은가? number1은 number2보다큰가? number1은 number2와크거나같지않은가? number1은 number2와작은가? number1은 number2와작거나같지않은가? 유닉스프로그래밍 - 상명대학교 23

쉘프로그래밍 조건과테스트 test 사용예 <condition_test.sh> echo -e "Enter three numbers and I will show you the largest of them >> \c" read num1 num2 num3 if test "$num1" -gt "$num2" -a "$num1" -gt "$num3" then echo "The largest number is : $num1" elif test "$num2" -gt "$num1" -a "$num2" -gt "$num3" then echo "The largest number is : $num2" else echo "The largest number is : $num3" fi echo "Done~! :-)" exit 유닉스프로그래밍 - 상명대학교 24

쉘프로그래밍 조건과테스트 문자값비교 test 명령은문자를비교하는데다른연산자를제공 연산자 =!= -n -z 예제 string1 = string2 string1!= string2 -n string -z string2 의미 String1과 string2는일치하는가? String1과 string2는일치하지않는가? String 문자 ( 길이 0) 를포함하는가? String1은빈문자 ( 길이 0) 인가? 유닉스프로그래밍 - 상명대학교 25

산술 & 관계연산 산술연산 $ expr 1+2 [Enter] 3 $ expr 10\% 3 [Enter] 1 관계연산자 $ expr Gabe = Gabe [Enter] 1 $ expr 10 \> 20 [Enter] 0 유닉스프로그래밍 - 상명대학교 26

루프 (loop) 구조 반복구조 문장이나명령어를반복하기위해사용 프로그래머에게많은기능과유연성을제공 세가지반복구조를가짐 for, while, until for 루프 : for-in-done 구조 지정한숫자만큼명령어를수행하는기능을제공 <for_in_done.sh> for count in 1 2 3 10 do echo "in the for $count times" done exit 유닉스프로그래밍 - 상명대학교 27

루프 (loop) 구조 for-in-done 구조사용예 <for_in_done_2.sh> if [ $# -ne 2 ] then echo "Usage: $0 old_file_suffix new_file_suffix" exit 1 fi for file in *.$1 do mv $file `basename $file $1`$2 done exit 0 유닉스프로그래밍 - 상명대학교 28

루프 (loop) 구조 while 루프 : while-do-done 구조 지정된숫자만큼명령어를수행하는기능을제공 for 루프와달리조건 (condition) 이참인경우에만루프를수행 <while_do_done.sh> carryon=y while [ "$carryon" = Y ] do echo -e "I do the job as long as you type Y: \c" read carryon done echo "Good job!" exit 유닉스프로그래밍 - 상명대학교 29

루프 (loop) 구조 until 루프 : until-do-done 구조 루프의조건이거짓인동안에만명령어를반복하는점을제외하고는 while과매우유사 첫번째수행에서루프가참이라면, 반복구문은한번도수행되지않는경우가발생 <until_do_done.sh> i=1 until [ "$i" -gt 10 ] do echo " i : $i" let i=i+1 done echo "Good job!!" exit 유닉스프로그래밍 - 상명대학교 30