CentOS 쉘 스크립트 프로그래밍

CentOS는 많은 서버 및 시스템 환경에서 널리 사용되는 운영 체제입니다. 이 운영 체제에서는 쉘 스크립트를 사용하여 강력하고 자동화된 작업을 수행할 수 있습니다. 쉘 스크립트는 작은 과정들을 자동화하고, 반복 작업을 간소화하기 위해 사용됩니다. 이러한 스크립트는 bash 쉘에서 작성될 수 있습니다.

쉘 스크립트 시작하기


쉘 스크립트를 작성하려면 텍스트 편집기를 사용하여 .sh 확장자를 갖는 파일을 만들고, 스크립트를 작성해야 합니다. 예를 들어, my_script.sh라는 이름의 파일을 생성하고 다음 코드를 작성합니다.

#!/bin/bash

echo "Hello, world!"

위의 코드는 단순한 예시입니다. echo 명령어를 사용하여 “Hello, world!”를 출력하는 스크립트입니다. 텍스트 편집기로 스크립트를 작성한 후, 터미널에서 다음과 같이 실행하여 스크립트를 실행할 수 있습니다.

chmod +x my_script.sh
./my_script.sh

chmod +x 명령어는 스크립트 파일을 실행 가능한 상태로 변경합니다. ./my_script.sh 명령어는 스크립트를 실행합니다.

변수 사용하기


변수는 쉘 스크립트에서 유용하게 사용되는 개념입니다. 변수는 데이터를 저장하고 조작하기 위해 사용됩니다. 예를 들어, 다음과 같이 변수를 선언하고 사용할 수 있습니다.

#!/bin/bash

name="John Doe"
echo "My name is $name."

위의 예시에서는 name이라는 변수를 선언하고 “John Doe”라는 값을 할당하였습니다. 변수를 사용할 때에는 $를 사용하여 변수 값을 참조합니다. 위의 코드를 실행하면 “My name is John Doe.”라는 출력을 얻을 수 있습니다.

조건문 사용하기


쉘 스크립트에서는 if 조건문을 사용하여 특정 조건에 따라 다른 동작을 수행할 수 있습니다. 예를 들어, 다음 코드는 현재 시간이 오후인지 아닌지에 따라 다른 메시지를 출력합니다.

#!/bin/bash

hour=$(date +%H)

if [[ $hour -gt 12 ]]; then
    echo "Good afternoon!"
else
    echo "Good morning!"
fi

위의 코드에서 [[ $hour -gt 12 ]]는 현재 시간을 저장한 hour 변수 값이 12보다 큰지 비교합니다. 조건이 참인 경우 “Good afternoon!”을 출력하고, 아닌 경우 “Good morning!”을 출력합니다.

반복문 사용하기


반복문은 쉘 스크립트에서 동일한 작업을 여러 번 실행할 때 유용합니다. for 반복문은 주어진 범위 내에서 코드를 반복 실행합니다. 예를 들어, 1부터 5까지의 숫자를 출력하는 스크립트는 다음과 같이 작성할 수 있습니다.

#!/bin/bash

for number in {1..5}; do
    echo $number
done

위의 코드에서 {1..5}는 1부터 5까지의 범위를 나타냅니다. 반복문은 각 숫자를 $number 변수에 할당하고, 해당 숫자를 출력하는 코드를 실행합니다.

함수 정의하기


함수는 코드의 재사용성을 증가시키는 데 도움이 되는 기능입니다. 쉘 스크립트에서 함수를 정의하려면 다음과 같은 구문을 사용합니다.

#!/bin/bash

greet() {
    echo "Hello, $1!"
}

greet "John"
greet "Jane"

위의 예시에서 greet라는 함수를 정의하고, $1 변수를 사용하여 인자를 전달합니다. 함수를 호출할 때에는 함수 이름 뒤에 인자를 전달하여 호출합니다. 위의 스크립트를 실행하면 “Hello, John!”과 “Hello, Jane!”이라는 출력을 확인할 수 있습니다.

결론


이 글에서는 CentOS에서 쉘 스크립트 프로그래밍에 대해 알아보았습니다. 쉘 스크립트를 사용하면 자동화 및 반복 작업을 간소화할 수 있으며, 변수, 조건문, 반복문 및 함수와 같은 기능을 사용하여 더욱 강력한 스크립트를 작성할 수 있습니다. CentOS 환경에서 쉘 스크립트 프로그래밍을 익혀서 시스템 관리 및 자동화 작업을 효율적으로 수행할 수 있습니다.