728x90
for 문
- 리스트 안의 각 값들에 대해 지정한 명령을 순차적으로 실행
- 형식
for 변수 in list
do
명령
done
- 스크립트 예
$ cat -n test_for
1 #!/bin/bash
2 #
3 # test for loop
4 #
5
6 for num in 0 1 2
7 do
8 echo “Number is $num”
9 done
$
- 실행 결과
$ chmod +x test_for
$ ./test_for
Number is 0
Number is 1
Number is 2
$
- 외부 파일의 내용 참조
- $(< file)을 사용하여 file의 내용을 입력으로 받아, white space로 구분되는 단어를 한 번에 한 개씩 처리
- $(< file)은 cat list로 바꿀 수 있음
- 스크립트 예
$ cat list
user2
user3
user4
$ cat -n test_for2
1 #!/bin/bash
2 #
3 # test for loop
4 #
5
6 for person in $(< list)
7 do
8 echo “Hello, $pserson”
9 done
$
- 실행결과
$ chmod +x test_for2
$ ./test_for2
Hello, user2
Hello, user3
Hello, user4
$
- 명령행 인자 처리
- 스크립트 이름과 함께 입력된 명령행 인자는 for 문을 이용해 처리
- 스크립트 예
$ cat -n test_for3
1 #!/bin/bash
2 #
3 # test for loop
4 #
5
6 for person in $*
7 do
8 echo “Hi, $person”
9 done
$
- 실행결과
$ chmod +x test_for3
$ ./test_for3 user2 user3 user4
Hi, user2
Hi, user3
Hi, user4
$
while 문
- 주어진 조건 명령이 정상 실행되는 동안 do와 done 사이의 명령을 반복 실행
- 루프가 반복될 때마다 조건 명령을 다시 실행
- 조건 명령의 종료 값이 항상 0이라면 무한 반복을 할 수도 있음
- 형식
while 조건명령
do
명령
done
- 스크립트 예 : 1~10의 합을 구하는 스크립트
- 산술, 비교, 논리 연산자를 사용할 때는 (( ))나 let을 사용해야 함
$ cat -n test_while
1 #!/bin/bash
2 #
3 # test while loop
4 #
5
6 count=1
7 sum=0
8 while (( count<=10 ))
9 do
10 (( sum+=count ))
11 let count+=1
12 done
13
14 echo “Sum(1~10) : $sum”
$
- 실행 결과
$ chmod +x test_while
$ ./test_while
Sum(1~10) : 55
$
728x90
'프로그래밍 > Unix' 카테고리의 다른 글
쉘 스크립트(Shell Script) 함수 (0) | 2020.05.13 |
---|---|
쉘 스크립트(Shell Script) 제어문 - select, continue, until 문 (0) | 2020.05.12 |
쉘 스크립트(Shell Script) 제어문 - case 문 (0) | 2020.05.10 |
쉘 스크립트(Shell Script) 제어문 - if 문 (0) | 2020.05.09 |
쉘 스크립트(Shell Script) 연산자 (0) | 2020.05.09 |