[강좌][shell] 루프(while, until) 구문에 대하여
======================================================================
SHELL PROGRAMMING [6] 루프구문 (while,util)
본 강좌는 본인의 허락없이 무단 복사하거나 타 사이트에 등록하는것을
금지 합니다. – 서진우(alang at sysmng.com)
======================================================================
6.1 while 구문
while 구문은 다른 프로그래밍 언어에서와 같이 조건이 만족하는 한 do 와
done 사이에 실행 구문을 반복하여 실행한다.
형식 ———————————————
while [ test 조건문 ]
do
실행 구문
done
————————————————–
주의점 : 조건문이 항상 참이나 0 보다 크면 무한 루트문이 된다.
예제 ——————————————–
#!/bin/sh
while [ 1 ]
do
echo “test”
done
————————————————
이밖에 1 대신에 : 를 사용하여도 무한루프로 작동하게 된다.
6.2 until 구문
while 문 과는 반대로 조건문이 참이면 루프를 끝낸다.
형식 ———————————————
until test 조건문
do
실행 구문
done
————————————————–
예제 ———————————————
#!/bin/sh
until who | grep “zzang”
do
sleep 10
done
echo “zzang is login”
————————————————–
위 예제는 10 초 마다 접속자 마다 zzang 의 계정이 시스템에 들어
왔는지를 확인한후 들어 왔으면 zzang is login 이란 문장을 출력
하고 루프에서 빠져 나온다.
6.3 continue and break
continue 와 break 는 다른 프로그램 언어에서와 사용법이 유사하다.
둘다 루프문에서 사용되어지는데 continue 는 루프 수행중 continue 이하
내용은 생략하고 다시 조건 검사를 하도록 하는 것이고 break 는 루프문
에서 강제로 빠져 나올때 사용된다.
예제 ——————————————–
while :
do
read X
if [ “$X” = “yes” ]
continue
else
break
fi
done
————————————————
위는 입력대기모드의 키워드 값이 yes 면 다시 입력대기모드로 들어가고
yes 이외의 다른값이 들어오면 루프문에서 빠져 나온다.