저자 : 정원석
리눅스 쉘 II (1) : 쉘 프로그래밍이란?
리눅스의 명령어를 보면 Windows나 예전의 Dos보다 사용법도 까다롭고 명령어도 많아 유용한 기능들을 제대로 활용하기가 어렵다. 그래서 이번에는 쉘 프로그래밍을 배우면서 리눅스의 다양한 기능들을 배워보자. 쉘 프로그래밍은 다른 언어의 프로그래밍보다 어렵지 않다. 예전의 Dos에서 Autoexec.bat 같은 Batch 파일 작성하는 것과 비슷하게 생각하시면 된다. 순차적으로 실행되는 방식이라 프로그래밍이 그리 어렵지 않고 베이직과 같은 Interpreter방식이라 결과값도 빨리 볼 수 있고 디버깅도 쉽다. 그리고 무엇보다 리눅스의 기능들을 다양하게 활용할 수 있다. * Interpreter는 고급언어로 작성된 원시코드 명령문들을 한번에 한 줄씩 읽어들여서 실행하는 프로그램이다. 쉘 프로그램을 작성하는 방법은 두 가지가 있다. 첫번째는 명령을 차례대로 입력하고 쉘이 실행하게 해주는 것이고, 두번째는 프로그램으로 호출할 수 있는 스크립트 파일에 명령을 저장하여 실행하는 것이다. 쉘 프로그램도 프로그래밍 언어이기 때문에 기본 문법을 익혀두어야 한다. |
리눅스 쉘 II (2) : 변수 및 조건문 |
1. 변수
위와 같이 변수의 값을 설정할 때에는 변수명 다음에 '=' 을 사용하여 값을 넣어주면 된다. 한 가지 주의할 점은 '=' 좌우에 공간이 있으면 안된다. 숫자형, 문자형 변수의 구별은 따로 하지 않으며 ""를 사용하면 문자열 변수 로 사용할 수 있다.
값이 설정된 변수를 사용할 때는 변수명 앞에 '$'자를 붙여서 쓰면 된다.
2. 조건문 ① 문법 조건문은 어떤 조건을 테스트하고 이런 결졍에 따라 동작을 수행하는 것이다. 쉘 스크립트에서 사용되는 조건문의 구조를 살펴보고 저어구조에 대해서 살펴보자.
각 expression 사이나 [ 뒤와, ] 앞에는 꼭 공간을 넣어야만 한다. ② 수치 조건문 숫자를 비교하는 조건문이다.
③ 파일 조건문 파일의 존재 유무와 읽기 쓰기 가능 여부를 테스트하기 위한 조건문이다.
④ 문자열 조건문 문자열 검사로서 문자열을 비교할 때는 꼭 ""를 사용하여야 한다.
|
리눅스 쉘 II (3) : 흐름 제어 - 1 |
3. 흐름 제어 - 1 ① if / elif / else 문법
* if의 개수만큼 fi를 사용해야 한다. ex) 설명: 만약 wacky라는 file이 존재한다면 그 이름을 merong로 바꾸고 wacky가 존재하지 않고 haha라는 파일이 존재하면 haha를 huhu로 바꾼다.
if 문을 사용할 때는 주의할 점이 몇가지가 있다. if문을 쓸때는 then과 fi를 항상 같이 써야 하고, 쉘에서 스크립트를 분석할 때는 줄 단위로 하기 때문에 if,then,fi를 다른 줄에 써야 한다. 그리고 then 다음에 아무런 내용이 없으면 오류가 발생한다. 그래서 ':'(true command)를 then 뒤에 붙이던가 아니면 else문을 쓰지 않아야 한다. ② for in 뒤의 리스트들을 for 다음에 나오는 변수의 값으로 하나씩 대치시켜 사용한다. 문법
* list은 공간으로만 구별한다. ex) 설명: list값이 하나씩 ha로 들어가 화면에 출력된다.
③ While 조건이 만족하는 한 do done 사이의 statments를 반복하여 실행한다. 문법
* 조건문이 항상 True거나 0보다 크게 되면 무한 루프가 되버린다. ex) 설명: ha의 값을 20이 될 때까지 반복하여 찍는다.
④ Until while 과는 반대로 조건문이 True이면 루프를 끝낸다. 문법
ex)
|
리눅스 쉘 II (4) : 흐름 제어 - 2 |
3. 흐름 제어 - 2 ⑤ continue and break 문 continue와 break문은 다른 언어에서와 비슷하게 사용한다. 둘다 루프문 안에서 사용되고 continue는 루프문 중간에 continue이하를 실행하지 않고 다시 조건 검사를 하는 것이고, break문은 루프문을 강제로 빠져나올때 사용한다. ex)
⑥ case 문 case문은 변수 값에 따라서 선택 작업을 할 때 사용한다. 문법
ex)
⑦ Redirection Redirection은 표준입력과 표준출력의 방향을 결정해주는 역활을 한다. 문법 > file 또는 1 > file : file로 내용을 출력한다. >> file 또는 1 >> file : file에 내용을 덧붙인다. < file : file로 부터 내용을 읽어들인다. 2> file : file로 error 내용을 출력. | : '|' 왼쪽의 출력 내용을 '|'오늘쪽의 입력으로 사용한다. ex)
|
리눅스 쉘 II (5) : 함수 만들기 |
4. 함수 만들기 C 언어와 비슷한 형태의 함수를 Shell Script안에 선언하여 사용할 수 있다. 문법
ex) 설명: 여러곳의 taget으로 file을 복사하는 함수
앞으로 리눅스를 사용하면서 간단한 반복작업을 하는 프로그램을 짜야 하는 경우가 있을것이다. 쉘 프로그래밍은 문법이 다른 언어에 비해 그리 어렵지 않아 배우기가 쉽기 때문에 사용할 줄 안다면 리눅스에서 매우 편하게 작업할 수 있을것이다. |
댓글 없음:
댓글 쓰기