기본적인 프로그래밍(c, java, ...) 에서는 아래와 같이 사용하지만
for(int i =0; i< 10;i++){
println("hello")
}
bash 에서는 i 의 값이 미리 정해줘야 한다.
for i in 1 2 3 4 5 라고 하면 i 에서는 1 , 2 , 3, 4 , 5를 순차적으로 반복할것이다.
for i in a b c d e 로 한다면 ? i 에는 a, b , c, d, e 가 순차적으로 i에 적용될것이다.
for문이 시작되면 do 와 done 사이에 반복될 내용을 적어주면된다.
기초 문법 (1)
#!/bin/bash
for i in 1 2 3 4 5
do
echo "hi $i"
done
기초 문법(2)
#!/bin/bash
for i in {1..5}
do
echo "hello $i"
done
실습
이전의 배열인 array1 을 가지고 for문을 실행 해보자
#!/bin/bash
array1=(a b c d e)
echo "array1[0] = ${array1[0]}" ## 특정 인덱스의 값 가지고오기
echo "array1[*] = ${array1[*]}" ## 전체 배열의 값 출력
echo "array1[@] = ${array1[@]}" ## 전체 배열의 값 출력
echo "!array1[@] = ${!array1[@]}" ## 전체 배열의 인덱스의 값 출력
echo "#array1[@] size = ${#array1[@]}" ## 배열의 사이즈 크기 출력
echo "#array1[0] = ${#array1[0]}" ## 배열[0] 의 사이즈 크기
#인덱스의 값
for i in ${!array1[@]}
do
echo "hi $i"
done
#배열의 모든 값 사용
for i in ${array1[@]}
do
echo "hi $i"
done
$ sh dataset_maker.sh
array1[0] = a
array1[*] = a b c d e
array1[@] = a b c d e
!array1[@] = 0 1 2 3 4
#array1[@] size = 5
#array1[0] = 1
hi 0
hi 1
hi 2
hi 3
hi 4
hi a
hi b
hi c
hi d
hi e