쉘 스크립트(Shell Script)는 리눅스/유닉스 운영 체제에서 쉘을 사용하여 작성된 명령어들의 모음이다.
쉘 스크립트를 사용하면 여러 명령어를 하나의 파일로 묶어 실행할 수 있으며, 이를 통해 자동화, 배치 작업 처리, 시스템 관리 등의 작업을 쉽게 처리할 수 있다.
배시 쉘 스크립트(Bash Shell Script)는 배시 쉘을 사용하여 작성된 쉘 스크립트를 의미하며, 인터프리터 방식으로 동작된다.
쉘 스크립트 파일의 확장자는 .sh를 주로 사용한다. .sh 확장자는 모든 쉘 스크립트 파일에 관례로 사용하지만, 특정 쉘에 따라 확장자를 다르게 사용하여 파일을 구분할 수도 있다.
쉘 스크립트 파일의 확장자는 실제 파일 실행 실행에 있어 영향을 끼치진 않는다. 실제 파일의 실행에 영향을 끼치는 부분은 셔뱅(shebang) 부분이다.
![]()
쉘 스크립트 파일 생성
touch shell_script_file.sh셔뱅(shebang) 지정
셔뱅은
#!로 시작하며, 그 뒤에는 실행할 프로그램의 경로를 지정한다.
(bin 디렉토리 내 bash 프로그램을 사용하여 파일 실행)#!/bin/bash명령어 작성
셔뱅 작성 후 명령어를 작성하여 스크립트 파일 작성
echo "Hello World"쉘 스크립트 파일 권한 부여 및 실행
스크립트 파일을 실행하기 위해서는 실행 권한이 있어야 한다.
# shell_script_file에 실행 권한(x) 부여 chmod +x shell_script_file.sh스크립트 파일 실행
새로운 쉘 프로세스에서 스크립트 실행
# 실행 권한이 없는 경우 실행 불가 ./shell_script_file.sh소싱 방식 스크립트 파일 실행
현재 쉘 프로세스에서 스크립트 실행 (현재 쉘 프로세스 내에서 실행되기 때문에 실행 권한이 없어도 실행 가능)
source shell_script_file.sh소싱 방식 스크립트 파일은 스크립트 파일 내에서도 실행이 가능하다.
![]()
🆚 비실행 방식 비교
./shell_script_file.sh source shell_script_file.sh 실행 프로세스 새로운 쉘 프로세스에서 스크립트 실행 현재 쉘 프로세스 환경에서 실행 변수/함수 새로운 쉘 프로세스에서만 유효, 현재 쉘에는 영향X 현재 쉘 프로세스에 영향을 미침 사용 상황 독립적인 스크립트 실행, 시스템 명령어 실행 등 쉘 환경 변경, 함수/변수 설정 등 환경 초기화