사랑하애오
article thumbnail
Published 2021. 12. 20. 13:55
리눅스 반복문 Linux

1. Shell Loop Types

이번 시간에서는 Unix Shell에서 사용하는 반복문에 대해서 알아본다. 반복은 일련의 명령을 반복할 수 있도록 하는 프로그래밍 도구로서 아래에서 다양한 반복문 종류를 살펴보도록 한다.

각각의 반복문은 상황에 따라서 적절하게 선택할 수 있어야 한다.

1.1. The while loop

while 반복문은 조건이 발생할 때까지 명령을 지속적으로 실행한다.

1.1.1. 문법

<code />
while command do Statement(s) to be executed if command is true done

1.1.2. Example

<code />
#!/bin/sh a=0 while [ $a -lt 10 ] do echo $a a=`expr $a + 1` done
<code />
$ ./while.sh 0 1 2 3 4 5 6 7 8 9

1.2. The for loop

for 반복문은 리스트에 저장된 명령이 실행할 때까지 반복적으로 실행한다.

1.2.1. 문법

<code />
for var in word1 word2 ... wordN do Statement(s) to be executed for every word. done

var는 변수 이름이며, word1 ~ wordN 구분된 문자열이다. for 반복문이 실행할 경우 리스트에서 각각의 문자를 꺼내고 실행한다.

1.2.2. Example

<code />
#!/bin/sh for var in 0 1 2 3 4 5 6 7 8 9 do echo $var done
<code />
$ ./for.sh 0 1 2 3 4 5 6 7 8 9

다음 예제는 홈 디렉터리에 저장되어 있는 .bash 이름을 가진 모든 파일 목록을 살펴보도록 한다.

<code />
#!/bin/sh for FILE in $HOME/.bash* do echo $FILE done
<code />
$ ./for-bash.sh /Users/seongwon/.bash_history

1.3. The until loop

until 문법은 모든 조건이 완벽하게 충족할 때까지 반복한다.

1.3.1. 문법

<code />
until command do Statement(s) to be executed until command is true done

1.3.2. Example

<code />
#!/bin/sh a=0 until [ ! $a -lt 10 ] do echo $a a=`expr $a + 1` done
<code />
$ ./until.sh 0 1 2 3 4 5 6 7 8 9

1.4. The select loop

select 반목문은 옵션이 정해져 있는 항목을 선택하여 해당 문이 실행할 수 있도록 한다.

1.4.1. 문법

<code />
select var in word1 word2 ... wordN do Statement(s) to be executed for every word. done

var는 변수 이름이며, word1 word2 ... wordN은 공백으로 이루어진 문자 리스트이다. 이 반복문은 ksh에서 처음 도입되어 bash에 적용되었으며 일반 sh에서는 실행할 수 없다.

1.4.2. Example

<code />
#!/bin/bash select character in Sheldon Leonard Penny Howard Raj do echo "Selected character: $character" echo "Selected number: $REPLY" done
<code />
$./select.sh 1) Sheldon 2) Leonard 3) Penny 4) Howard 5) Raj #? 5 Selected character: Raj Selected number: 5 #? 4 Selected character: Howard Selected number: 4 #?

쉘 환경을 PS3로 변경하여 다음과 같이 표시할 수 있다.

<code />
PS3="Enter a number: " select character in Sheldon Leonard Penny Howard Raj do echo "Selected character: $character" echo "Selected number: $REPLY" done
<code />
$./select.sh 1) Sheldon 2) Leonard 3) Penny 4) Howard 5) Raj Enter a number: 4 Selected character: Howard Selected number: 4 Enter a number: 5 Selected character: Raj Selected number: 5 Enter a number: ^C

1.4.3. Advanced

추가적으로 dialog와 GUI 방식으로 사용자의 입력을 선택받을 수 있도록 한다. 맥 사용자의 경우 dialog 설치를 진행한다.

<code />
$ brew install dialog
<code />
$ dialog --clear --backtitle "Backtitle here" --title "Title here" --menu "Choose one of the following options:" 15 40 4 \ 1 "Option 1" \ 2 "Option 2" \ 3 "Option 3"

출처

https://judo0179.tistory.com/122

profile

사랑하애오

@사랑하애

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!