셸 스크립트 동작 방식

1.  지정한 디렉터리의 모든 파일과 디렉터리를 출력하는 셸 스크립트 작성

 

작성 팁

1. 먼저 작고 간단한 기능부터 구현

2. 전체적인 흐름을 먼저 작성한 뒤 조금씩 구현

 

#!/bin/bash

# 함수 정의: 주어진 경로에 대한 파일 및 디렉터리 목록을 재귀적으로 출력
list_recursive() {

     local filepath=$1        # 첫 번째 인자로 받은 파일 경로를 지역 변수에 저장
     local indent=$2         # 두 번째 인자로 받은 들여쓰기 값을 지역 변수에 저장
     
     # 들여쓰기를 적용하고 파일 이름만 추출하여 출력
     echo "${indent}${filepath##*/}"
     
     # filepath 가 디렉터리인지 확인합니다.
     # 디렉터리라면 그 안의 항목들에 대해 루프를 실행
     if [ -d "$filepath" ]; then
         
         local fname    # 현재 처리 중인 파일 또는 디렉터리의 이름을 저장할 지역 변수
         
         for fname in $(ls $filepath) # 디렉터리 내의 각 항목에 대해 반복
         do
              # fname 이 디렉터리라면 재귀적으로 list_recursive 를 호출          
              list_recursive "${filepath}/${fname}" "${indent} "
         done
     fi
}

# 스크립트 실행의 시작점: 첫 번째 인자로 받은 경로를 기준으로 함수를 호출
list_recursive "$1" ""

+ Recent posts