개발자라면 한번쯤 파일 최상단에 #!로 시작하는 "#! /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을 보게 되면, 그 의미와 용도를 정확히 이해할 수 있을 것이다.
'기타' 카테고리의 다른 글
[기타] 역기획 이란? (0) | 2023.09.15 |
---|---|
[암호화 기법] 봉투 암호화 (Envelope encryption) (0) | 2023.08.25 |
[Github Actions] GitHub Actions을 이용한 Slack 알림 설정하기 (0) | 2023.06.16 |
[Redis] Docker로 redis 설치 및 GUI 붙이기 (0) | 2023.04.10 |
[Git] 특정 파일만 stash 하는 방법 (git stash) (0) | 2022.12.14 |