리눅스 대부분의 쉘 스크립트 맨 위에
#!/bin/bash
가 붙어있는 걸 볼 수 있다.
처음엔 주석을 의미하는 # 맨 앞에 있어서 아 bash 스크립트라는 의미를 표기하기 위해 쓰는 건가?
라고 생각할 수도 있고 따지고 보면 틀린 말은 아닌데 실제 스크립트 실행 시 영향을 주는 구문이다.
#!는 셔뱅(shebang)이라고 부르는데 이 뒤에 선언된 부분으로 스크립트를 동작시키겠다는 의미다.
#!/bin/sh
-- 본 쉘(sh)로 스크립트를 실행
#!/bin/bash
-- bash 쉘로 스크립트를 실행
그렇다고 #!/bin/bash 처럼 셔뱅이 없다고해서 꼭 bash 쉘이 실행되지 않는 건 아니다.
연식이 좀 된 유닉스 장비가 아닌 이상 요즘 배포판에서는 대부분 bash를 쓰기 때문에 일반적으로 기본 쉘인 bash로 알아서 실행해준다.
그래도 다양한 환경에서 일관성 있게 실행되어야 하기 때문에 명시해주는 게 좋다.