기계적 인조 인간

배쉬 while 루프

로봇ë?•후 3ê°œêµ - 한 미 ì?¼(韓 美 æ—¥) 개발 로봇들 -World Robot ~ ROK / JPN / USA

로봇ë?•후 3ê°œêµ - 한 미 ì?¼(韓 美 æ—¥) 개발 로봇들 -World Robot ~ ROK / JPN / USA

차례:

Anonim

루프는 프로그래밍 언어의 기본 개념 중 하나입니다. 루프는 특정 조건이 충족 될 때까지 일련의 명령을 여러 번 실행하려는 경우 편리합니다.

Bash와 같은 스크립팅 언어에서 루프는 반복적 인 작업을 자동화하는 데 유용합니다. Bash 스크립팅에는 for 루프, while 루프 및 until 루프의 3 가지 기본 루프 구성이 있습니다.

이 튜토리얼에서는 Bash에서 while 루프의 기본 사항과 루프 흐름을 변경하기위한 break 및 continue 문에 대해 설명합니다.

배쉬 동안 루프

while 루프는 주어진 조건이 true로 평가되는 한 알려지지 않은 횟수로 주어진 명령 세트를 수행하는 데 사용됩니다.

Bash while 루프는 다음 형식을 따릅니다.

while do done

명령을 실행하기 전에 조건이 평가됩니다. 조건이 true로 평가되면 명령이 실행됩니다. 그렇지 않으면 조건이 false로 평가되면 루프가 종료되고 프로그램 제어가 다음 명령으로 전달됩니다.

아래 예제에서 각 반복에서 루프는 변수 i 의 현재 값을 인쇄하고 변수를 1 씩 증가시킵니다.

i=0 while do echo Number: $i ((i++)) done

화 루프는 i 가 2보다 작거나 같은 한 반복됩니다. 다음과 같은 출력이 생성됩니다.

Number: 0 Number: 1 Number: 2

무한 while 루프

무한 루프는 무한 반복되고 종료되지 않는 루프입니다. 조건이 항상 true로 평가되면 무한 루프가 발생합니다.

다음 예제에서는 내장 명령을 사용합니다. 무한 루프를 만들려면 항상 true를 반환합니다. 내장 명령 또는 항상 true를 리턴하는 다른 명령문을 사용할 수도 있습니다.

while: do echo "Press to exit." sleep 1 done while: do echo "Press to exit." sleep 1 done

위의 while 루프는 무한정 실행됩니다. CTRL+C 를 눌러 루프를 종료 할 수 있습니다.

한 줄에 해당하는 내용은 다음과 같습니다.

while:; do echo 'Press to exit.'; sleep 1; done while:; do echo 'Press to exit.'; sleep 1; done

한 줄씩 파일 읽기

while 루프의 가장 일반적인 사용법 중 하나는 파일, 데이터 스트림 또는 변수를 한 줄씩 읽는 것입니다.

다음 예제에서 while 루프는 /etc/passwd 파일을 한 줄씩 읽고 각 줄을 인쇄합니다.

file=/etc/passwd while read -r line; do echo $line done < "$file"

조건으로 while 루프를 제어하는 ​​대신 입력 리디렉션 ( < "$file" )을 사용하여 루프를 제어하는 ​​명령 인 파일을 read 로 전달합니다. while 루프는 마지막 행을 읽을 때까지 실행됩니다.

한 줄씩 파일을 읽을 때 백 슬래시가 이스케이프 문자로 작동하지 않도록 항상 -r 옵션과 함께 read 사용하십시오.

기본적으로 read 명령은 선행 / 후행 공백 문자 (공백 및 탭)를 자릅니다. 이 동작을 방지하려면 read 명령 앞에 IFS= 옵션을 사용하십시오.

file=/etc/passwd while IFS= read -r line; do echo $line done < "$file"

Break and Continue 문

break 및 continue 문을 사용하여 while 루프 실행을 제어 할 수 있습니다.

브레이크 선언

break 문은 현재 루프를 종료하고 프로그램 제어를 종료 된 루프 다음에 오는 명령으로 전달합니다. 일반적으로 특정 조건이 충족 될 때 루프를 종료하는 데 사용됩니다.

다음 예제에서는 현재 반복 된 항목이 2 가되면 루프 실행이 중단됩니다.

i=0 while do echo "Number: $i" ((i++)) if]; then break fi done echo 'All Done!'

Number: 0 Number: 1 All Done!

계속 진술

continue 문은 루프의 현재 반복을 종료하고 프로그램 제어를 루프의 다음 반복으로 전달합니다.

아래에서 현재 반복 항목이 2 와 같으면 continue 문으로 인해 루프의 시작 부분으로 돌아가서 다음 반복이 계속됩니다.

i=0 while do ((i++)) if]; then continue fi echo "Number: $i" done echo 'All Done!'

Number: 1 Number: 3 Number: 4 Number: 5 All Done!

결론

지금까지 bash while 루프를 사용하는 방법에 대해 잘 알고 있어야합니다.

bash 루프 터미널