셔뱅(Shebang) [#! /bin/bash]

shebang (셔뱅 또는 해시뱅)은 스크립트 파일의 첫 줄에 쓰이는 #!(해시 기호 + 느낌표)로 시작하는 구문입니다. 이 줄은 해당 스크립트를 어떤 인터프리터로 실행 할지를 지정합니다.
인터프리터(interpreter)는 프로그래밍 언어로 작성된 코드를 한 줄씩 읽고 즉시 실행하는 프로그램입니다. 이는 “작성된 명령을 번역해서 곧바로 실행해주는 번역기”라고 볼 수 있습니다.
보통 ASCII 텍스트 파일로 작성된 셸 스크립트에서 해시 기호(#)는 주석으로 표시됩니다.
~]#echo "Hello, world!" #주석#
Hello, world!# 뒤에 오는 내용은 셸이 무시합니다. 이는 # 뒤에 어떤 문장을 쓰든 스크립트나 명령 실행에 영향 없음을 의미합니다.
~]#echo "# 이건 주석이 아니라 출력입니다."
# 이건 주석이 아니라 출력입니다.#를 문자열 안에서 쓰면 주석이 아니라 문자 자체로 인식됩니다.
✅ 리눅스의 셔뱅 사용법
해시 기호(#)가 예외가 되는 사항이 Shebang입니다.
첫 줄의 #!는 Shebang이라고 하며, 단순 주석이 아닌 스크립트를 실행할 인터프리터를 지정하는 지시자입니다.
#!/bin/bash이 줄은 스크립트 파일을 실행할 때 /bin/bash 경로에 있는 Bash 인터프리터를 사용하라는 의미입니다. 즉, 이 스크립트를 bash 환경에서 해석하고 실행하도록 지정하는 것입니다.
리눅스에서 기본으로 사용하는 Bash 셸은 명령어 해석기이자 스크립트 언어입니다. 우리가 터미널에 입력하는 대부분의 명령은 bash를 통해 실행됩니다. Bash로 스크립트를 작성할 경우, 다음과 같이 Shebang 설정을 합니다.
또 다른 예로, Python으로 작성된 스크립트라면 다음과 같은 Shebang을 사용합니다.
#!/usr/bin/env python3이 파일을 Python 3 인터프리터로 실행해 달라는 의미입니다.
✅ 경로
셔뱅 라인이 없거나 경로가 잘못된 경우, 운영체제의 기본 셸이 사용되거나 오류가 발생할 수 있습니다.
유닉스 계열의 경우 Shebang 라인이 없으면, 기본적으로 /bin/sh 셸이 사용됩니다. 이 셸은 주로 Bash나 다른 기본 셸의 심볼릭 링크일 수 있습니다.
데비안 계열의 경우 셔뱅 라인이 없을 때 기본 셸은 /bin/bash 또는 /bin/sh입니다. /bin/sh는 보통 Bash로 연결되어 있으며, 이에 따라 기본 환경이 결정됩니다.
경로가 잘못되면, 시스템은 해당 인터프리터를 찾을 수 없어 오류를 발생 시킵니다.
![셔뱅(Shebang) [#! /bin/bash] 1 셸 스크립트(Shell Script)-셔뱅 페이지](https://uknew.co/storage/2023/12/%EC%89%98-%EC%8A%A4%ED%81%AC%EB%A6%BD%ED%8A%B8Shell-Script.jpg)
ℹ️ 제휴 안내
본 사이트의 콘텐츠에는 제휴 링크가 포함되어 있습니다. 방문자가 이 링크를 통해 상품 또는 서비스를 구매하면 본 사이트는 판매처로부터 수수료를 지급받습니다. 이 과정에서 구매자가 지불하는 금액(이벤트 할인 시 금액이 내려갑니다↓)은 오르지 않습니다. 게시된 가격·할인·재고 정보는 작성 시점 기준이며 실제와 다를 수 있으므로, 구매 전 판매처에서 최종 확인하시기 바랍니다. 상품 선정과 평가는 자체 기준에 따라 작성되며, 수수료 지급 여부가 소개 순서나 평가 내용에 영향을 주지 않습니다.