Bash에서 while 루프를 사용하는 방법

Suraj Joshi 2023년1월30일
  1. 구문 : Bash의while 루프
  2. 예 : Bash의while 루프
  3. 예 : Bash의 무한while 루프
  4. 예 :break 문이있는 Bash의while 루프
  5. 예 :continue 문이있는 Bash의while 루프
Bash에서 while 루프를 사용하는 방법

while 루프는 거의 모든 프로그래밍 언어에서 가장 널리 사용되는 루프 구조 중 하나입니다. 루프를 실행해야하는 횟수를 모르는 경우에 사용됩니다. while 루프에 대한 조건을 지정할 수 있으며 조건이 거짓이 될 때까지 루프의 명령문이 실행됩니다.

구문 : Bash의while 루프

while [condition]
do
   command-1
   command-2
     ...
     ...
   command-n
done

여기서 condition은 루프에서 명령을 실행하기 전에 매번 확인해야하는 조건을 나타냅니다. ‘조건’이 참이면 루프에서 문을 실행합니다. ‘조건’이 거짓이면 루프를 종료합니다. command-1에서command-n까지의 문장은condition이 거짓이 될 때까지 루프에서 실행되는 문장입니다.

예 : Bash의while 루프

#!/bin/bash

num=5

while [ $num -ge 0 ]
do
  echo $num
  ((num--))
done

출력:

5
4
3
2
1
0

여기서 처음에는 num을 5로 설정합니다. num값이 0보다 크거나 같은 한 루프에서 계속해서 num을 출력하고 루프에서 num을 1 씩 감소시킵니다.

예 : Bash의 무한while 루프

#!/bin/bash

while true
do
  echo "This is an infinite while loop. Press CTRL + C to exit out of the loop."
  sleep 0.5
done

출력:

This is an infinite while loop. Press CTRL + C to exit out of the loop.
This is an infinite while loop. Press CTRL + C to exit out of the loop.
This is an infinite while loop. Press CTRL + C to exit out of the loop.
^C

이것은 무한 while 루프입니다. 0.5 초마다 <kbd>Ctrl</kbd>+<kbd>C</kbd> 를눌러 루프를 종료합니다 . 루프를 종료하려면 CTRL+C를 누릅니다.

예 :break 문이있는 Bash의while 루프

#!/bin/bash

num=5

while [ $num -ge 0 ]
do
  echo $num
  ((num--))
  if [[ "$num" == '3' ]]; then
    echo "Exit out of loop due to break"
    break
  fi
done

출력:

5
4
Exit out of loop due to break

위 프로그램에서num은 5로 초기화됩니다.num이 0보다 크거나 같으면 루프가 실행됩니다.하지만num이 3 일 때 루프에break 문이 있기 때문에 루프는 실행됩니다. 따라서num의 값이 3이되면 루프를 종료합니다.

예 :continue 문이있는 Bash의while 루프

#!/bin/bash

num=6

while [ $num -ge 1 ]
do
  ((num--))
  if [[ "$num" == '3' ]]; then
    echo "Ignore a step due to continue"
    continue
  fi
  echo $num
  
done

출력:

5
4
Ignore a step due to continue
2
1
0

위 프로그램에서num은 6으로 초기화됩니다. 루프에서 먼저num을 1 씩 줄인 다음num 최신 값을 인쇄합니다. 루프는num 값이 1 이상이면 실행됩니다.num이 3이되면 스크립트는num 일 때continue 문이 있으므로num 값을 인쇄하지 않습니다. 3입니다.

작가: Suraj Joshi
Suraj Joshi avatar Suraj Joshi avatar

Suraj Joshi is a backend software engineer at Matrice.ai.

LinkedIn