쉘스크립트의 첫 라인에 #!/bin/bash 를 기제하는 이유

쉘스크립트 작성시, 가장 첫 라인에 #!/bin/bash 를 기제하는 이유는, 스크립트 파일이 bash 쉘로 실행시킨다는 의미입니다. 같은 원리로 tcsh 쉘로 실행시키려면, 첫라인은 #!/bin/tcsh 로 시작해야 합니다.

!/bin/bash 를 기제를 하지 않아도 실행된다면, 이는 리눅스 배포판은 기본적으로 bash 쉘로 설정되어있어서 동일한 bash 쉘상에서 무리없이 작동되는 경우입니다. !/bain/bash 를 지정해서, bash 쉘 파일임을 미리 알려주는 것이 다른 쉘간의 오류를 방지하는 방법입니다.

(참고)
쉘스크립트에서 #는 주석기호이지만, 첫라인의 #!/bin/bash 에서의 #은 주석기호가 아니라는 점..

bash 와 sh 를 혼용해도 될까요?

결론적으로 모두 같은 의미입니다.
#!/bin/bash
#!/bin/sh

SSH / Telnet 상에서 아래 명령어를 입력해보세요.
ls -al /bin/sh

실행결과 : /bin/sh -> bash

즉, sh 가 bash 의 심볼릭링크로 설정되어있으므로, 서로 혼용해서 사용해도 된다는 의미입니다.

출처 : http://blog.whenji.com/278


+ Recent posts