모종닷컴

셔뱅(shebang) 본문

기술 용어

셔뱅(shebang)

모종 2023. 4. 29. 17:02
반응형

shebang (셔뱅)

셔뱅이란 # 기호와 ! 기호가 붙은 형태의 문자열을 의미합니다. 스크립트의 가장 첫 줄에 선언되며, sha-bang(샤뱅), hashbang(해시뱅), pound-bang(파운드뱅), hash-pling(해시 플링), crunchbang(크런치뱅)등으로 불리기도 한다고 합니다.셔뱅은 유닉스 기반 시스템에서 스크립트 파일의 첫 번째 줄에 사용을 하는데 셔뱅 이후의 경로에 스크립트를 실행할 인터프리터 지시자의 경로를 적어줍니다. 예로 "#!/bin/sh"에서 셔뱅(#!)을 제외한 /bin/sh이 인터프리터 지시자가 됩니다.

예시(쉘 스크립트)

파일 하나를 먼저 만들겠습니다.

touch sh-script

vi로 파일 내용을 수정해 주도록 하겠습니다. 파일 내용은 아래와 같이 입력해 주면 됩니다.

#!/bin/sh

echo "hello shell"

실행해 보기 위해 파일에 실행 권한을 부여하고 실행해 봅니다.

chmod +x sh-script

./sh-script

 

예시 (파이썬 스크립트)

파일을 생성합니다.

touch py-script

내용을 채워줍니다. 

#!/usr/bin/env python3

print("hello python")

위에서 쉘 예시와 같이 실행 권한을 부여하고 실행을 해줍니다.

인터프리터가 이해하지 못하는 구문 넣어서 테스트해 보기

인터프리터를 셔뱅라인에 지정했다면 해당 인터프리터가 이해할 수 있는 문법을 사용해야 할 텐데요. 인터프리터가 이해할 수 없는 구문이 만약 사용된다면 오류가 날 겁니다. 이를 직접 확인해 봅니다.

아래 내용을 py-script에 넣어주세요.

#!/usr/bin/env python3

print("hello python")
echo("hello echo")

실행해 보면 아래와 같이 오류가 나는 것을 확인할 수 있습니다.

    echo("hello echo")
    ^^^^
NameError: name 'echo' is not defined

반응형

'기술 용어' 카테고리의 다른 글

Rolling Upgrade  (0) 2023.11.05
Reentrancy  (0) 2023.07.29
Swap memory  (0) 2022.11.27
서버 이중화 동작 방식  (0) 2022.09.11
유한 상태 기계 (Finite-State Machine, FSM)  (0) 2022.08.16