본문 바로가기

Computer Science/Linux

#!/bin/sh 는 왜 쓰는거야? - 셔뱅, 해시뱅(shebang, hashbang)

반응형

아마 초보 개발자들이 처음 선배들의 쉘이나 파이썬 코드를 보면 의문이 생길껍니다.

 

 

아니 첫줄에 주석인데 저건뭐지?

의미없는걸 왜 꼭 챙겨서쓰는거지?

 

이건 주석이 아니라 셔뱅(shebang)입니다.

 

sharp(#) + bang(!) 합성어로 Unix계열 OS(리눅스, Mac)에서 스크립트(bash, python등등) 코드 최상단에서 해당 파일을 해석해줄 인터프리터의 절대경로를 지정합니다.

 

지정된 인터프리터 프로그램이 대신 실행되어 스크립트의 실행을 시도할 때 처음 사용되었던 경로를 인수로서 넘겨주게 됩니다.

 

시스템마다 인터프리터의 절대경로는 다를 수 있기때문에 가능하면 심볼릭 링크가 있는 /usr/bin/env를 경로로 사용하는 것이 좋습니다.

 

좋은 예시

반응형