Python(파이썬) 기본 - 25. shebang

아래 내용은 공부한 것을 정리하므로 틀린 내용이 포함되어 있을 수 있습니다.

1. shebang 이란?

  • sharp(#) + bang(!) 합성어
  • Unix계열 OS(리눅스, Mac)에서 스크립트(bash, python등등) 코드 최상단에서 해당 파일을 해석해줄 인터프리터의 절대경로를 지정합니다.
      #!인터프리터절대경로
    
  • 프로그램의 경로는 시스템에따라 달라질 수 있습니다.
  • 일반적으로 사용할 수 있는 방법이 /usr/bin/env파일을 이용하는 방법입니다. #!/usr/bin/env + 언어 식으로 입력하는 방법이 있습니다.
      #!/usr/bin/env bash
      #!/usr/bin/env python
      #!/usr/bin/env perl
      #!/usr/bin/env php
    

2. shebang 작성

  • Python(파이썬) 기본 - 22. module import와 실행 에서 작성했던 파일로 shebang을 작성하고 실행해보겠습니다.

  • 인터프리터 절대경로로 입력하는 방법입니다.
  • 터미널창에 아래의 명령어를 입력하면 python실행경로가 나옵니다.
      $ which python
    
  • words.py 파일 최상단에 아래와 같이 입력하고 저장합니다. 아래의 경로는 저의 시스템 경로입니다.
      #!/Users/Blidkaga/.pyenv/shims/python
    
  • 파일은 저장했지만 한가지가 더 필요합니다. 유닉스 계열환경에서는 실행하도록 권한을 부여해야합니다.
      $ chmod +x words.py  
    
  • 실행해봅니다. python명령어 없이도 바로 실행되었습니다.
      ./words.py https://suwoni-codelab.com/assets/story.txt
    
  • 자신의 시스템에서만 사용한다면 이렇게 사용해도 무방합니다.
  • 여러사람이 한 파일을 공유할경우 env를 이용하여 작성하는 것이 좋습니다.
  • words.py파일에서 env 경로로 작성하고 python을 추가해서 작성해줍니다.
      #!/usr/bin/env python
    
  • 다시 위쪽예제와 똑같이 실행하면 정상적으로 실행됩니다.