셔뱅
shebang(sharp + bang)은 #! 기호를 뜻하며, 스크립트의 맨 처음에 써서 해당 스크립트를 해석할 인터프리터의 절대경로를 지정한다.
#!인터프리터절대경로
유닉스 계열 운영 체제에서 셔뱅이 있는 스크립트는 프로그램으로서 실행된다. 1) 지정된 인터프리터 프로그램이 대신 실행되고, 2) 스크립트의 실행을 시도할 때 처음 사용되었던 경로를 인수로서 넘겨준다. 이를테면 스크립트의 경로가 path/to/script
이고 다음의 줄로 시작한다면, 프로그램 로더는 프로그램 /bin/sh
를 대신 실행하되 path/to/script
를 첫 번째 인수로 넘겨준다.
#!/bin/sh
다양한 머신으로 배포해야하는 스크립트의 경우, 머신에 따라 인터프리터 경로가 다른 경우가 있다. 그럴때 셔뱅을 이용하여 환경변수에 지정된 경로를 가져올 수 있는데, 아래와 같이 쓴다. {언어이름}으로 지정된 바이너리의 경로를 ‘PATH’ 환경변수에서 찾고, 그 바이너리를 스크립트 실행에 사용하는 것이다.
#!/usr/bin/env {언어이름}
#!/usr/bin/env bash
#!/usr/bin/env python