반응형

개발자라면 한번쯤 파일 최상단에 #!로 시작하는 "#! /bin/bash" 또는 "#!/usr/bin/env node" 이런 형식의 문자열을 본적이 있을것이다.

이 글에서는 프로그래밍 스크립트에서 자주 볼 수 있는 ‘Shebang’이라는 특수한 기호에 대해 알아보자.

 

Shebang이란?

Shebang은 스크립트의 가장 윗부분에 위치하는 #!로 시작하는 라인을 말한다. 주로 Unix와 유사한 운영체제에서 사용되며, 이 라인은 스크립트를 실행할 때 어떤 인터프리터를 사용할 것인지 시스템에게 알려준다.

 

예시

#!/bin/bash
echo "Hello, World!"

 

위 스크립트에서 #!/bin/bash는 이 스크립트를 bash 쉘로 실행하라는 것을 나타낸다.

#!/usr/bin/env node
console.log("Hello from Node.js!");

 

이 스크립트는 Node.js 환경에서 실행된다.

왜 Shebang이 필요할까?

스크립트는 여러가지 프로그래밍 언어로 작성될 수 있다. 예를 들어, Python, Perl, Ruby, Node.js 등 다양한 언어가 있다. Shebang은 스크립트를 실행할 때 적절한 인터프리터를 자동으로 선택해서 사용하게 도와준다.

#!/usr/bin/env의 의미

대부분의 시스템에서는 특정 인터프리터의 절대 경로를 shebang에 직접 지정한다. 그러나 #!/usr/bin/env를 사용하면 환경변수 $PATH에서 해당 인터프리터를 검색하여 사용한다. 이 방식은 스크립트가 여러 시스템에서 동작할 때 인터프리터의 위치가 다를 수 있으므로 유용하다.

주의할 점

Shebang은 반드시 파일의 첫 줄에 있어야 한다.
Shebang 뒤에 오는 경로는 인터프리터의 절대 경로여야 한다. 예: #!/usr/bin/python3

 

마무리

Shebang은 스크립트를 작성하고 실행할 때 꼭 알아두면 좋은 지식 중 하나이다. Shebang을 보게 되면, 그 의미와 용도를 정확히 이해할 수 있을 것이다.

 

반응형
얼은펭귄