셸 스크립트(Shell Script)는 리눅스와 유닉스 시스템에서 셸 명령어를 순차적으로 실행하는 스크립트 파일입니다. 주로 시스템 관리, 자동화, 작업 스케줄링 등에 사용되며, 특히 Bash 셸 스크립트가 가장 널리 사용됩니다. 이를 통해 복잡한 작업을 자동화하고, 일관된 환경을 유지할 수 있습니다.
셸 스크립트의 기본 구조
셸 스크립트는 일련의 셸 명령어와 제어 구조로 구성됩니다. 보통 .sh
확장자를 가집니다.
#!/bin/bash
# 주석은 이렇게 작성합니다.
# 변수 정의
NAME="World"
# 명령어 실행
echo "Hello, $NAME!"
echo "Current date and time: $(date)"
위 예시는 간단한 Bash 셸 스크립트로, “Hello, World!”와 현재 날짜와 시간을 출력하는 스크립트입니다.
셸 스크립트에서 사용하는 주요 명령어 및 기능
- 변수와 할당 변수를 정의하고 값을 할당할 수 있습니다.
NAME="World"
- 사용자 입력 처리 사용자 입력을 받을 수 있습니다.
echo "What's your name?"
read USER_NAME
echo "Hello, $USER_NAME!"
- 조건문 조건에 따라 다른 명령어를 실행할 수 있습니다.
if [ "$USER" == "admin" ]; then
echo "Welcome, administrator!"
else
echo "Access denied."
fi
- 반복문 명령어 블록을 반복 실행할 수 있습니다.
for i in {1..5}; do
echo "Count: $i"
done
- 함수 함수를 정의하고 호출하여 코드를 모듈화할 수 있습니다.
greet() {
echo "Hello, $1!"
}
greet "Alice"
- 파일 처리 파일 생성, 삭제, 복사, 이동 등을 셸 스크립트에서 수행할 수 있습니다.
touch file.txt
cp file.txt backup/
rm file.txt
- 에러 처리 명령어 실행 중 발생하는 오류를 처리할 수 있습니다.
if ! command; then
echo "Error: Command failed."
exit 1
fi
- 환경 변수와 매개변수 환경 변수와 스크립트에 전달된 매개변수를 사용할 수 있습니다.
echo "Home directory: $HOME"
echo "Script name: $0"
echo "First argument: $1"
- 파일 리다이렉션과 파이프라인 파일로의 출력이나 다른 명령어의 입력을 처리할 수 있습니다.
echo "Hello" > output.txt
cat input.txt | grep "pattern"
- 프로그램 실행 다른 프로그램이나 명령어를 셸 스크립트에서 실행할 수 있습니다.
result=$(ls) echo "Directory contents: $result"
셸 스크립트 실행 방법
셸 스크립트는 실행 권한을 가진 후 실행할 수 있습니다.
- 실행 권한 추가
chmod +x script.sh
- 스크립트 실행
./script.sh
주의사항
- 스크립트에서 오류를 최소화하기 위해 존재하지 않는 파일을 조작하지 않도록 주의해야 합니다.
- 사용자 입력을 받을 때 유효성 검사를 수행하여 예상치 못한 입력에 대비해야 합니다.
- 환경 변수와 경로를 신중하게 다루어 시스템에 영향을 주지 않도록 해야 합니다.
셸 스크립트는 강력한 시스템 관리 도구로, 다양한 시나리오에서 시스템 자동화와 작업 효율성을 높이는 데 중요한 역할을 합니다.