본문 바로가기
리눅스 (Linux)

While

by 멸치김밥 2021. 12. 21.
while [ 조건 ]; do
    명령
done

같은명령을 반복시키는 while

조건이 충족하면 명령을 실행하는 것을 반복한다

빠져나갈 방법을 마련해두지 않으면 계속 반복하기 때문에 유의해야한다.

명령에서 조건에 해당하는 변수에 변화를 주어 빠져나오게 만든다.


  • 사용 예시
#!/bin/bash
# while.sh
number=0
while [ $number -le 2 ]; do
    echo ${number}
    ((number++))
done
$ ./while.sh
0
1
2

while문이 한번 돌때마다 number 가 0부터 1씩 증가하여 조건인 2보다 작거나 같을때까지만 동작한다

 

날짜를 이용한 루프

#!/bin/bash
# dateWhile.sh
startDate=$(date +"%Y%m%d" -d "20210201")
endDate=$(date +"%Y%m%d" -d "20210301")

while [ "$startDate" != "$endDate" ]; do
    echo $startDate
    startDate=$(date +"%Y%m%d" -d "$startDate + 1 day")
done
$ ./dateWhile.sh
20210201
20210202
...
...
20210227
20210228

startDate에 2021년 2월 1일을 넣고 포맷은 yyyymmdd 으로 준다

endDate에는 포맷은 같고 2021년 3월 1일을 넣는다

while을 통해 startDate를 출력하고 1이일을 더하는것을 반복하면

startDate가 3월1일이 되면 조건에 충족하지 못하므로 (false) 루프를 빠져나온다.

댓글