Bash 스크립팅 입문
Alex Scriven
Data Scientist
Python:
for x in range(3):
print(x)
0
1
2
R:
for (x in seq(3)){
print(x)
}
[1] 1
[1] 2
[1] 3
Bash의 기본 구조도 유사합니다:
for x in 1 2 3do echo $x done
1
2
3
Bash에는 '브레이스 확장'이라는 숫자 범위 작성 방법이 있습니다:
{START..STOP..INCREMENT}for x in {1..5..2}do echo $x done
1
3
5
또 다른 자주 쓰는 FOR 문 형태는 '세 표현식' 문법입니다.
x=2)x<=4)x+=2)
for ((x=2;x<=4;x+=2))
do
echo $x
done
2
4
Bash에서는 *로 패턴 매칭을 사용해 디렉터리의 파일 등을 for 루프에 확장할 수 있습니다.
예를 들어, /books 폴더에 텍스트 문서가 두 개 있다고 가정합시다:
for book in books/*
do
echo $book
done
books/book1.txt
books/book2.txt
$() 표기로 셸 안의 셸을 만든 것 기억하시나요?
이를 for 루프에 바로 사용할 수 있습니다!
다음과 같은 폴더 구조를 가정합시다:

셸 안의 셸 호출 결과를 순회할 수 있습니다:
for book in $(ls books/ | grep -i 'air')do echo $book done
AirportBook.txt
FairMarketBook.txt
FOR 루프와 유사하지만, 각 반복마다 검사되는 조건을 설정합니다.
조건이 거짓이 될 때까지 반복합니다.
for 대신 while을 사용-le 등)&&(AND), ||(OR)로 연결하거나 이중 대괄호 사용 가능간단한 예시입니다:
x=1while [ $x -le 3 ];do echo $x ((x+=1)) done
1
2
3
종료 조건을 충족하지 않으면 WHILE 문은 무한 루프가 될 수 있습니다.
x=1
while [ $x -le 3 ];
do
echo $x
# x를 증가시키지 않음. 3에 도달하지 않음!
# ((x+=1))
done
이 코드는 1을 계속 출력합니다!
Bash 스크립팅 입문