쉘 스크립트를 만들때,  가장 첫 라인에

#!/bin/bash

를 왜 써야 하는지에 대하여 알아 보도록 하겠습니다.


쉘 스크립트의 가장 첫 라인에  !/bain/bash 를 쓰게 됨으로 해서, 내가 사용 하려는 명령어 해석기가 bash 쉘 임을 미리 알려주는 것입니다.


일반적으로 스크립트에서 #는 주석기호이지만, 첫라인의 #!/bin/bash 에서의 #은 주석기호가 아닙니다.


스크립트의 가장 첫라인에 있는 #! 은 스크립트의 제일 앞에서 이 파일이 어떤 명령어 해석기의 명령어 집합인지를 시스템에게 알려주는 역할을 합니다.


#! 은 두 바이트의 "매직넘버"("magic number")로서, 실행 가능한 쉘 스크립트라는 것을 나타내는 특별한 표시자입니다.


#! 바로 뒤에 나오는 것은 경로명으로, 스크립트에 들어있는 명령어들을 해석할 프로그램의 위치를 나타내는데 그 프로그램이 쉘인지, 프로그램 언어인지, 유틸리티인지를 나타냅니다.


이 명령어 해석기가 주석은 무시하면서 스크립트의 첫 번째 줄부터 명령어들을 실행시킵니다.


거의 대부분의 상업용 유닉스 및 리눅스 에서 기본 본쉘인 #!/bin/sh을 쓰면 비록 Bash 만 가지고 있는 몇몇 기능들을 못 쓰게

되겠지만 리눅스가 아닌 다른 머신에 쉽게 포팅 할 수 있게 해 줍니다. (이렇게 작성된 스크립트는 POSIX sh 표준을 따르게 됩니다. )

"#!" 뒤에 나오는 경로는 정확히 Full PATH를 기록 해야 합니다.

만약 PATH를 잘못 적게 되면, 스크립트를 돌렸을 때 거의 대부분 "Command not found"라는 에러 메세지만 보게 될 것입니다.


이상으로 쉘 스크립트 처음에 왜 "#!/bin/bash"를 반드시 써야만 하는지에 대하여 알아 보았습니다.