지니의 따듯한 공간
반복문 본문

이번 장에서는 리눅스 쉘 스크립트 작성 시 반복문으로 활용가능한 while문, until문, for
문의 사용법에 대해 알아보자.

while문은 쉘에서 명령어들을 반복 수행하는 반복문으로 사용된다. while문의 사용 형식
은 다음과 같다. while condition_commands;

while문은 조건명령어(condition_commands)가 참(종료상태값이 0)인 동안, 반복 명령어
(commands)를 반복 수행한다.

(( )) 처럼 괄호 두개 사용되면 수식 테스트
6번 라인에 저 명령어 대신에
let count+=1 (let 명령어 사용)
(( count++ )) 도 가능하다.

쉘에서의 주석은 # 이다

REPLY = // 기존의 REPLY값을 지운다.
DELAY = 3초동안 딜레이 (멈춘다.)
cat <<- _EOF_ 대신에
그냥 echo + " " 로 문자열 출력 해도 상관없습니다~


줄을 맞춰 사용하기 위해서 탭 사이즈를 사용한다.
출력되는 단어의 길이에 상관없이 일정한 간격 유지 해서 나타낸다.


while문 반대 조건으로 반복하는 until문에 대해 알아보자.

until문은 while문과 반대로 조건명령어가 거짓(종료상태값=1)이면 반복하고, 조건명령어
가 참(종료상태값=0)이면 반복을 멈춘다.



다음은 반복횟수가 명확한 반복에서 주로 사용하는 for문에 대해 알아보자. for문은 다시
쉘형식의 for문과 C언어 형식의 for문으로 나눌 수 있다.


쉘 형식의 for문에서는 단어 목록(words)에 포함된 각 문자열을 하나씩 변수(variable)에
할당해서 순차적으로 반복 처리하는 반복문이다. 쉘 형식의 for문에서 “in words” 부분
이 생략되면 위치 매개변수 목록에서 변수 값을 하나씩 읽어와서 반복 처리한다.
위치 매개변수에 대해선 추후 학습하자 !
예문은 너무 간단하니까 편집기 사용은 하지않겠습니다.


그냥 단어를나열 할 수도있지만 확장을 해서 작성하는게 훨씬더 파워풀하다.



C언어 형식의 for문은 정수 테스트 명령어의
3개 표현식(expr1=초기문, expr2=조건식, expr3=변경문)으로 반복횟수를 나타낸다.
반복문의 장점인 확장성 이용 / = 반복의 횟수를 쉽게 바꿀 수 있다는 점 /



이번에는 정상적인 반복 흐름을 변경 시키는 분기문에 대해 알아보자.
쉘의 분기문에는 break 명령어와 continue 명령어가 쓰인다.
break 명령어는 break문을 포함하는 반복문의 실행 흐름을 멈추고
반복문을 벗어나 반복문 다음 명령문으로 실행 흐름을 분기한다.
continue 명령어는 continue 아래에 반복을 처리를 위해 작성된 명령문의 실행을 생략하고
실행 흐름을 다음 반복 단계로 이동시킨다 ( for문에서는 expr3 변경문으로 이동 )


시험 칠 때에는 실행 결과를 위주로 공부를하자.
3의 배수일 때 continue 명령어를 만나서 -> 증감식이 실행
i (카운터)가 7일 때 break 명령어를 만나서 반복문을 빠져나온다.

중괄호 확장에는 띄어쓰기 x


반복문 안에 반복문을 포함하는 이중 루프에 대해 알아보자.
반복문에 포함된 반복문을 내곽 루프라 하고, 반복문을 포함하는 반복문을 외곽 루프라 한다.
외곽 루프는 행의 반복과 같은 큰 단계의 반복을 의미하고, 내곽 루프는 각 행에서 열을 반복 시키는
세부 반복으로 사용된다. 이중 루프는 주로 데이터를 이차원 형태로 출력하고자 할 때
주로 사용한다. 이차원 형태로 출력하기 위해선 외곽 루프의 마지막 액션으로 줄을 바꾸
는 명령어를 포함해야 한다.



printf : echo와 다르게 형식 지정해서 출력하는 명령어

-------- 추가 실습 --------






'Network > Linux' 카테고리의 다른 글
| 배열 [Array] (0) | 2019.06.19 |
|---|---|
| 위치매개변수 (0) | 2019.06.19 |
| 키보드 입력과 다중 선택 (0) | 2019.06.12 |
| ACL [ Access Control List ] (0) | 2019.05.31 |
| 정규 표현식 (0) | 2019.05.29 |