본문 바로가기

리눅스

[draft] Shell 스크립트 for 반복문

728x90

Shell 스크립트 for 반복문

기본 구문

for 변수 in [범위](리스트, 배열, 묶음)

do

    명령(작업할 내용)

done

기본 형태

리스트에 대한 반복

#!/bin/bash

for item in item1 item2 item3
do
  echo "Processing $item"
done

C 스타일 반복문

#!/bin/bash

for ((i=0; i<5; i++));
do
    echo "Number: $i"
done

범위에 대해 반복

#!/bin/bash

for i in 1..5
do
    echo "Number: $i"
done

배열에 대해 반복

#!/bin/bash

ARRAY=("apple", "banana", "melon")

for value in "${ARRAY[@]}";
do
    echo ${value}
done

파일 목록에 대한 반복

#!/bin/bash

for file in /etc/*
do
    if [ "${file}" == "/etc/shadow" ]; then
        echo yes
        break
    fi
done
#!/bin/bash

FILES="$@"

for file in ${FILES}
do
    if [ -f ${file}.bak ]; then
        echo "${file}.bak file exists"
        continue
    fi
    cp ${file} ${file}.bak
done

예제 스크립트

다양한 방법을 조합하여 실제 스크립트에서 for 문을 사용할 수 있습니다. 예를 들어, 특정 확장자의 파일을 찾아서 처리하는 스크립트를 작성해보겠습니다.

#!/bin/bash

# 디렉터리 내의 모든 .txt 파일에 대해 반복
for file in /path/to/directory/*.txt
do
  # 파일이 존재하는지 확인
  if [ -e "$file" ]; then
    echo "Processing $file"
    # 파일 내용을 출력 (또는 다른 작업 수행)
    cat "$file"
  else
    echo "No .txt files found"
  fi
done

이 스크립트는 지정된 디렉터리 내의 모든 .txt 파일을 찾아서 각 파일의 내용을 출력합니다. 파일이 존재하지 않는 경우 적절한 메시지를 출력합니다.

 

728x90