본문 바로가기
Programming/코딩 이모저모

[shell] 스크립트 맨 윗 줄 #!/usr/bin 이게 무엇일까?

by veggie-garden 2024. 12. 17.

스크립트 파일을 보다 보면 맨 윗 줄에 #!/usr/bin/sh 이런 식으로 써져 있는 것을 많이 보았을 테다. 어차피 주석 같고, 코드에 별 영향을 주지 않으니 그냥 넘어갔지만, 보다 보니 궁금해져서 찾아봤다.

정의

이것의 정식 이름은 shebang. 해시 기호와 느낌표로 이루어진 문자 시퀀스로, 스크립트의 맨 처음에 온다. 유닉스 관련 운영 체제에서 사용하는데, 스크립트를 실행할 때 사용될 인터프리터[각주:1]를 지정하는 역할을 한다. 

문법

#!interpreter [optional-arg]

 

인터프리터의 경로를 명시한다. 인터프리터의 경로가 env에 명시되어 있는 경우 /usr/bin/env python3 이런 식으로 적으면 된다.

왜 사용하는가

사용자가 스크립트의 첫 번째 줄에 인터프리터를 지정하면, 별도로 커맨드라인에서 인터프리터를 호출하지 않고도 스크립트를 실행할 수 있다. 또한 여러 종류의 스크립트 언어를 하나의 시스템에서 실행할 때, shebang을 사용하면 각 스크립트가 자동으로 올바른 인터프리터를 찾아 실행한다. 이로 인해 스크립트 파일을 실행할 때 인터프리터를 매번 호출해야 하는 귀찮음과 잘못 호출할 위험이 없어졌다.

  1. 인터프리터는 프로그래밍 언어의 소스 코드를 바로 실행하는 컴퓨터 프로그램 또는 환경을 의미 [본문으로]
반응형

댓글