고급쉘스크립트작성법

안녕하세요, MJ입니다. 오늘은 고급 쉘 스크립트의 다양한 기능에 대해 알아보겠습니다. 쉘 스크립트는 리눅스에서 자동화된 작업을 수행하는 데 매우 유용한 도구입니다. 이번 포스팅에서는 조건문, 반복문, 함수의 사용법과 실제로 유용한 스크립트를 작성하는 방법을 살펴보겠습니다.

1. 조건문의 이해

조건문은 특정 조건에 따라 다른 명령을 실행할 수 있게 해줍니다. 쉘 스크립트에서는 if, else, elif 구문을 사용하여 조건문을 작성합니다. 기본적인 형식은 다음과 같습니다:

if [ 조건 ]; then
    명령어
else
    다른 명령어
fi

예를 들어, 사용자가 입력한 숫자가 짝수인지 홀수인지 확인하는 스크립트를 작성해 보겠습니다:

#!/bin/bash
echo "숫자를 입력하세요: "
read number

if [ $((number \% 2)) -eq 0 ]; then
    echo "$number는 짝수입니다."
else
    echo "$number는 홀수입니다."
fi

이 스크립트를 실행하면 사용자가 입력한 숫자에 따라 다음과 같은 결과가 나타납니다:

숫자를 입력하세요: 
4
4는 짝수입니다.

2. 반복문의 활용

반복문은 특정 명령어를 여러 번 실행할 수 있게 해줍니다. 쉘 스크립트에서는 for, while, until 구문을 사용하여 반복문을 작성합니다. 다음은 for 반복문의 기본적인 형식입니다:

for 변수 in 리스트; do
    명령어
done

예를 들어, 1부터 5까지의 숫자를 출력하는 스크립트를 작성해 보겠습니다:

#!/bin/bash
for i in {1..5}; do
    echo "$i"
done

이 스크립트를 실행하면 다음과 같은 결과가 나타납니다:

1
2
3
4
5

2.1 while 반복문 예제

while 반복문을 사용하여 사용자가 0을 입력할 때까지 숫자를 계속 입력받아 합계를 계산하는 예제를 살펴보겠습니다:

#!/bin/bash
sum=0
echo "숫자를 입력하세요 (0 입력 시 종료): "
while true; do
    read number
    if [ $number -eq 0 ]; then
        break
    fi
    sum=$((sum + number))
done
echo "합계는 $sum입니다."

이 스크립트를 실행하면 사용자가 입력한 숫자들의 합계를 계산하여 출력합니다.

3. 함수의 정의와 사용

함수는 특정 작업을 수행하는 명령어 집합으로, 재사용성을 높이고 코드를 깔끔하게 유지하는 데 도움을 줍니다. 함수의 기본적인 형식은 다음과 같습니다:

function_name() {
    명령어
}

예를 들어, 두 숫자의 합을 계산하는 함수를 작성해 보겠습니다:

#!/bin/bash
add() {
    echo "두 숫자를 입력하세요: "
    read a b
    sum=$((a + b))
    echo "합은 $sum입니다."
}

add

이 스크립트를 실행하면 두 숫자의 합을 계산하여 출력합니다.

3.1 함수와 반복문 결합

함수와 반복문을 결합하여 여러 숫자의 합을 계산하는 예제를 작성해 보겠습니다:

#!/bin/bash
sum=0
add() {
    sum=$((sum + $1))
}

for i in {1..5}; do
    add $i
done
echo "1부터 5까지의 합은 $sum입니다."

이 스크립트를 실행하면 1부터 5까지의 합을 출력합니다.

4. 실용적인 스크립트 작성

위에서 배운 조건문, 반복문, 함수를 이용하여 실용적인 스크립트를 작성해 보겠습니다. 예를 들어, 특정 디렉토리의 파일 수를 세고, 그 결과를 출력하는 스크립트를 작성할 수 있습니다:

#!/bin/bash
count_files() {
    echo "디렉토리의 파일 수를 세는 중입니다..."
    count=$(ls -1 | wc -l)
    echo "파일 수: $count"
}

cd /path/to/directory
count_files

이 스크립트를 실행하면 지정한 디렉토리의 파일 수를 세어 출력합니다.

5. 결론

고급 쉘 스크립트는 리눅스에서 효율적으로 작업을 자동화하는 데 매우 유용합니다. 조건문, 반복문, 함수의 활용을 통해 복잡한 로직을 쉽게 구현할 수 있습니다. 이번 포스팅을 통해 고급 쉘 스크립트의 기초를 이해하고, 실무에 적용해 보시기 바랍니다.

읽어주셔서 감사합니다. 다음 포스팅에서 만나요!

댓글 없음:

댓글 쓰기

내 리눅스 서버, 대체 뭐가 문제야?

내 리눅스 서버, 대체 뭐가 문제야? 안녕하세요. 오늘은 리눅스 서버가 버벅거릴 때, 원인을 파악하는 방법에 대해 알아보려고 해요. 서버의 성능 저하 원인을 찾는 것은 시스템 관리에서 매우 중요한 부분이에요. CPU, 메모리 사용량부터 수상한 프로...

가장 많이 본 글