[쉘 스크립트] for / while 문

2023. 10. 9. 01:52·쉘 스크립트

 


 

for문

조건문 다음에는 반복문이다, for문의 기본적인 형태는 두가지가 존재한다.

 

첫번째로는 파이썬과 같이 in 키워드를 사용하여 표현하는 것이다.

 

for 변수 in [ 범위(리스트, 또는 배열, 그 외의 묶음 등) ]
do
  수행문
done

 

어떤것을 순회할지 in 뒤에 명시해준다 이후 do안에 수행문을 작성하고 done으로 for문의 끝을 알려준다.

 

 

두번째로는 C나Java에서 for문을 표현하는 고전적인 형태이다.

 

for ((변수=초기값; 조건식; 증가값))
do
  수행문
done

 

일반적으로 아는 for문의 형태로 표현한다.

 

 

for문 예제

1) in 을 사용한 기본 사용법

#!/bin/bash

for num in 1 2 3
do
  echo $num
done

 

#!/bin/bash

numbers="1 2 3"

for num in $numbers
do
  echo $num
done

 

in 뒤에 위와 같이 순회할 요소들을 명시하거나, 또는 그 값을 변수에 저장해서 순회할 수 있다. 

 

 

2) 범위를 디렉토리로 사용할 경우

 

범위에 경로를 넣어 디렉토리에 있는 파일들을 순회할수도 있다. 아래는 환경변수 HOME 을 사용하여 그 아래에 있는 파일들을 출력했다.

 

#!/bin/bash
echo $HOME
for file in $HOME/*
do
  echo $file
done

 

 

/home/whipbaek 아래의 디렉토리 구조는 이렇게 되어있다.

 

환경변수 HOME 을 출력해보니 /home/whipbaek 으로 되어있고, 그 아래 디렉토리들이 순회하며 출력된 결과를 볼 수 있다.

 

3) 범위에 중괄호 사용

in 뒤에 중괄호 {} 를 사용하여 범위를 지정해줄 수 있다.

 

#!/bin/bash

for num in {1..5} # 1부터 5까지 1씩 증가하면서 num에 할당해준다.
do
  echo $num
done

 

 

#!/bin/bash

for num in {1..10..2} # 1부터 10까지 2씩 증가하면서 num에 할당해준다.
do
  echo $num
done

 

 

위와 같이 중괄호를 사용하면 for(변수;조건식;증감) 식을 대신할 수 있을 거 같다.

 

 

4) 범위에 배열 사용

배열을 범위에 사용할 수도 있다. 단 범위로 배열을 사용하는 경우에는 값 사이에 쉼표를 사용하면 안된다. 그리고 모든 요소들을 순회하기 위해서는 ${배열명[@]} 을 사용하여 배열의 모든 요소를 사용한다고 명시해주어야 한다.

 

#!/bin/bash

array=("apple" "banana" "pineapple")

for fruit in ${array[@]}
do
  echo $fruit
done

 

 

5) 소괄호문 for

C언어에서 사용하는 정통적인 방식인 소괄호를 이용한 for문 예제이다.

 

#!/bin/bash

for((num=0; num<3; num++))
do
  echo $num
done

 

 

 

While 문

while문 또한 지원된다. 조건은 if문과 유사하게 대괄호로 표시하고 조건이 맞으면 계속 수행하고 아니라면 벗어난다.

 

while [ 조건식 ]
do
  수행문
done

 

#!/bin/bash

num=0

while [ $num -lt 5 ]
do
 echo $num
 num=$((num+1))
done

 

 

 

 

 

# 위 내용은 "처음배우는 쉘 스크립트" 를 공부하고 정리한 내용입니다.

 

'쉘 스크립트' 카테고리의 다른 글

[쉘 스크립트] if문 / switch-case문  (0) 2023.10.09
[쉘 스크립트] 변수와 함수 기초 문법  (0) 2023.10.08
[쉘 스크립트] Syntax error: "(" unexpected 에러  (0) 2023.10.08
'쉘 스크립트' 카테고리의 다른 글
  • [쉘 스크립트] if문 / switch-case문
  • [쉘 스크립트] 변수와 함수 기초 문법
  • [쉘 스크립트] Syntax error: "(" unexpected 에러
whiporithm
whiporithm
https://github.com/whipbaek
  • whiporithm
    whiporithm
    whiporithm
  • 전체
    오늘
    어제
    • 분류 전체보기 (176) N
      • 개발 (17) N
      • LeetCode (3)
      • 백준 (79)
      • 프로그래머스 (64)
      • 회고 (6)
      • 쉘 스크립트 (4)
      • 자바 (3)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    쉘
    자바코테
    카카오
    백준
    자바
    코테
    프로그래머스
    개발
    nestjs 배포
    코딩테스트
    자바알고리즘
    알고리즘
    쉘스크립트
    파이썬
    파이썬알고리즘
    카카오코테
    파이썬코딩테스트
    카카오코딩테스트
    Java
    파이썬코테
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
whiporithm
[쉘 스크립트] for / while 문
상단으로

티스토리툴바