Bash while 루프

Bash while 루프

2022-05-17 last update

10 minutes reading terminal bash loop
루프는 프로그래밍 언어의 기본 개념 중 하나입니다. 루프는 특정 조건이 충족될 때까지 일련의 명령을 여러 번 실행하려는 경우에 편리합니다. Bash와 같은 스크립팅 언어에서 루프는 반복적인 작업을 자동화하는 데 유용합니다. Bash 스크립팅에는 세 가지 기본 루프 구성이 있습니다. for loop
, while 루프 및 until loop
.이 튜토리얼은 Bash의 while 루프의 기본 사항을 다룹니다. 또한 breakcontinue 문을 사용하여 루프의 흐름을 변경하는 방법도 보여줍니다. Bashwhile 루프 while 루프는 지정된 명령 집합을 알 수 없는 횟수만큼 수행하는 데 사용됩니다. 주어진 조건이 true로 평가되는 한. Bashwhile 루프는 다음 형식을 취합니다.
while [CONDITION]
do
  [COMMANDS]
done
while 문은 while 키워드로 시작하고 그 뒤에 조건식이 따릅니다. 조건은 실행하기 전에 평가됩니다. 명령. 조건이 true로 평가되면 명령이 실행됩니다. 그렇지 않고 조건이 false로 평가되면 루프가 종료되고 프로그램 제어가 다음 명령으로 전달됩니다. 아래 예에서 각 반복에서 변수i의 현재 값이 인쇄되고 incremented )
하나.
i=0

while [ $i -le 2 ]
do
  echo Number: $i
  ((i++))
done
Tue 루프는 i가 2보다 작거나 같은 한 반복됩니다. 다음과 같은 출력이 생성됩니다.
Number: 0
Number: 1
Number: 2
무한while 루프 무한 루프는 무한히 반복되고 절대 종료되지 않는 루프입니다. 조건이 항상 true로 평가되면 무한 루프가 발생합니다. 다음 예에서는 내장 명령:을 사용하여 무한 루프를 생성합니다. :는 항상 true를 반환합니다. true 내장 또는 항상 true를 반환하는 다른 명령문을 사용할 수도 있습니다.
while :
do
  echo "Press <CTRL+C> to exit."
  sleep 1
done
위의 while 루프는 무기한 실행됩니다. CTRL+C를 눌러 루프를 종료할 수 있습니다. 다음은 이에 해당하는 한 줄입니다.
while :; do echo 'Press <CTRL+C> to exit.'; sleep 1; done
파일을 한 줄씩 읽기 while 루프의 가장 일반적인 용도 중 하나는 파일, 데이터 스트림 또는 다음은 /etc/passwd
파일을 한 줄씩 인쇄하고 각 줄을 인쇄합니다.
file=/etc/passwd

while read -r line; do
  echo $line
done < "$file"
조건으로 while 루프를 제어하는 ​​대신 입력 리디렉션( < "$file" )을 사용하여 루프를 제어하는 ​​read 명령에 파일을 전달합니다. while 루프는 마지막 줄을 읽을 때까지 실행됩니다. 파일을 한 줄씩 읽을 때 항상 read 옵션을 -r 옵션과 함께 사용하여 백슬래시가 이스케이프 문자로 작동하지 않도록 합니다. 기본적으로 read 명령은 선행/후행 공백 문자(공백 및 탭)를 자릅니다. 이 동작을 방지하려면 IFS= 앞에 read 옵션을 사용하십시오.
file=/etc/passwd

while IFS= read -r line; do
  echo $line
done < "$file"
breakcontinuewhile 루프 실행을 제어하는 ​​데 사용할 수 있습니다.(adsbygoogle = window.adsbygoogle || []).push({}); breakcontinue 문은 현재 루프를 종료하고 프로그램 제어를 종료된 루프 다음에 오는 명령으로 전달합니다. 일반적으로 특정 조건이 충족될 때 루프를 종료하는 데 사용됩니다. 다음 예에서 현재 반복 항목이 break 와 같으면 루프 실행이 중단됩니다.
i=0

while [ $i -lt 5 ]
do
  echo "Number: $i"
  ((i++))
  if [[ "$i" == '2' ]]; then
    break
  fi
done

echo 'All Done!'
Number: 0
Number: 1
All Done!
break2 문은 루프의 현재 반복을 종료하고 프로그램 제어를 루프의 다음 반복으로 전달합니다. 아래에서 현재 반복된 항목이 continue와 같으면 다음과 같습니다. continue 문은 실행이 루프의 시작 부분으로 돌아가고 다음 반복을 계속하도록 합니다.
i=0

while [ $i -lt 5 ]
do
  ((i++))
  if [[ "$i" == '2' ]]; then
    continue
  fi
  echo "Number: $i"
done

echo 'All Done!'
Number: 1
Number: 3
Number: 4
Number: 5
All Done!
결론 2 루프는 조건이 참인 한 주어진 명령 세트를 반복적으로 실행합니다. 질문이나 피드백이 있으면 언제든지 댓글을 남겨주세요.