Linux

[bash] 리눅스 쉘 스크립트에서 for문 사용법 및 예제

lim 2021. 3. 28. 18:18
반응형

 

리눅스 bash 쉘 스크립트에서 for문을 사용하는 방법에 대해서 알아보자.

어느 프로그래밍 언어든 조건문과 반복문은 자주 쓰기 때문에 잘 익혀두면 많이 편하다.

(이러면서 저는 매일 까먹고 포스팅 찾아봄...)

 

아래 for 문 설명에서는 seq에 대한 설명은 제외했습니다!

 


for 반복문 사용 방법

1
2
3
4
for 변수 in 범위
do
  # 명령
done
cs

 

반복문의 기본 구조는 위와 같다. for의 in 뒤에 범위에는 리스트나 배열 등이 올 수 있다.

반복할 명령문은 do - done 사이에 위치해 있다. 

그럼 하나하나 예제를 보면서 사용 방법을 숙지해보자!

 


for 반복문 사용 예제

1
2
3
4
5
6
7
8
9
10
11
12
13
#!/bin/bash
 
for var in A B C D E
do
  echo $var
done
 
# 출력
A
B
C
D
E
cs

in 뒤에 A B C D E 문자를 띄어쓰기로 구분하여 넣어주면 띄어쓰기를 구분하여 반복문을 수행한다.

즉 A 부터 E 까지의 반복을 수행하므로 A부터 E까지의 문자가 출력된 것을 볼 수 있다.

 


for 반복문 사용 예제-리스트 원소 출력

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#!/bin/bash
list="A B C D E F G"
 
for var in $list
do
  echo $var
done
 
# 출력
A
B
C
D
E
F
G
cs

위 예제는 리스트의 원소를 순차적으로 반복문을 돌면서 출력한 예제이다. 

 

 


for 반복문 사용 예제-배열 원소 출력

1
2
3
4
5
6
7
8
9
10
11
12
13
14
#!/bin/bash
 
array=(1 3 5 7 9)
for var in "${array[@]}"
do
  echo $var
done
 
# 출력
1
3
5
7
9
cs

배열의 원소도 출력할 수 있다.

array[@]를 통해 array 배열의 모든 원소를 in 뒤로 가져온다.

 

 


for 반복문 사용 예제 - 순차적으로 증가하면서 반복

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#!/bin/bash
 
for var in {1..100}
do
  echo $var
done
 
# 출력
1
2
3
4
...
(중략)
...
100
 
cs

 

{시작..끝}

 

in 뒤에 중괄호로 특정 범위를 순차적으로 증가하면서 반복문을 수행하게 할 수 있다.

위 예제에서 볼 수 있듯이 시작과 끝 사이에 점 두개(..)를 넣어주면 시작과 끝까지 루프를 돌게 된다.

 


for 반복문 사용 예제 - 순차적으로 일정 범위만큼 증가 또는 감소하면서 반복

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#!/bin/bash
 
for var in {1..100..5}
do
  echo $var
done
 
# 출력
1
6
11
16
...
(중략)
...
96
 
cs

{시작..끝..증감폭}

 

시작과 끝 뒤에 ..증감폭 을 넣어주면 1부터 100까지 해당 숫자만큼의 범위만큼 증가 한다.

위 예제에서는 1부터 5씩 증가하는 예제이므로 1, 6, 11 이렇게 5씩 증가하여 반복문을 수행한다.

마찬가지로 반대로 감소하는 감소폭을 넣어줄수도 있다.

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#!/bin/bash
 
for var in {100..1..-5}
do
  echo $var
done
 
# 출력
100
95
90
...
(중략)
...
5
 
cs

위 예제는 100부터 1까지 5씩 감소하면서 반복문을 수행하는 예제다.

 


for 반복문 사용 예제 - 이중 괄호

1
2
3
4
5
6
7
8
9
10
11
12
13
14
#!/bin/bash
 
for ((var=0 ; var < 5 ; var++));
do
  echo $var
done
 
# 출력
0
1
2
3
4
 
cs

이중 괄호 안에 C나 JAVA와 같이 익숙한 형태의 반복문 문법을 사용할 수 있다.

위 예제는 0부터 5보다 작은 값까지 1씩 증가하면서 루프를 수행한다라는 문법이다.

 


for 반복문 사용 예제 - 무한 루프

1
2
3
4
5
6
7
8
9
10
11
12
#!/bin/bash
 
for (( ; ; ));
do
  echo "Hello World"
done
 
# 출력
Hello World
Hello World
...
...
cs

위와 같이 이중 괄호를 활용한 무한 루프를 만들 수도 있다.

 

 

 

반응형