관리 메뉴

IT 컴퓨터공학 자료실

#!(Shebang, 셔뱅) 알고 쓰자! - 출처 : 금소니의 삶 본문

네트워크/리눅스

#!(Shebang, 셔뱅) 알고 쓰자! - 출처 : 금소니의 삶

윤맨1 2021. 10. 21. 15:26

지금까지 쉘 스크립트를 정말 많이 작성하고 사용하였는데 이 때 사용하던 #!(셔뱅)을 그냥 형식적으로만 사용했지 제대로 알고 사용하지는 않았습니다.

 

그래서 이번 기회에 한 번 알아보고 이제 알고 써보기로 하였습니다.

 

1. #!(Shebang, 셔뱅)이란?

유닉스 계열 운영체제에서 스크립트를 작성할 때 맨 처음에 위치하며, 주로 쉘 스크립트를 작성할 때 많이 사용됩니다.

이 의미는 #!(셔뱅)으로 선언된 부분으로 스크립트를 동작시키겠다는 의미로 보시면 됩니다.

 

2. #!(Shebang, 셔뱅) 사용법

다른 스크립트에서도 사용할 수 있지만 저의 경우에는 주로 쉘 스크립트를 사용할 때 많이 사용하였습니다.

스크립트 최상단에 #! [인터프리터] [옵션] 을 이용하여 선언하여 주시면 됩니다.

 

예를들어 설명드리도록 하겠습니다.

EX) 본 쉘(sh)을 이용하여 스크립트 실행 - 스크립트

 - 실행 결과

* 참고로 말씀드리자면 스크립트의 경우 기본적으로 생성하였을 때 권한이 아래와 같기 때문에 바로 실행이 안 될 수 있습니다. 이 경우 권한을 변경하시거나 sh, bash, source 등 쉘 명령어를 이용하여 스크립트를 실행하시기 바랍니다.

저의 경우에는 권한을 변경하여 실행하였습니다.

실행결과 스크립트에 작성한 내용이 출력되는 것을 알 수 있습니다.

 

하지만... 이 #!(셔뱅)을 사용하지 않아도 스크립트가 동작할 수 있습니다.

이 이유는 조금 더 찾아봐야겠지만 두가지 중 하나의 이유로 동작한다고 예상이 됩니다.

 

1. 현재 동작하고 있는 쉘 기반으로 스크립트 수행

2. 스크립트 확장자(.sh)를 사용하고 있기 때문에 이미 해당 쉘로 스크립트 수행

 

혹시라도 이 이유에 대해서 정확히 알고 계시는 분이 계시다면... 꼭 댓글을 달아주시면 감사하겠습니다.