beauty in struggle

#!/usr/bin/env python3 (shebang) 설명; 있고 없고 차이 본문

After-work/linux

#!/usr/bin/env python3 (shebang) 설명; 있고 없고 차이

dgdeus 2023. 1. 7. 19:38
728x90
SMALL

python 코드를 보다보면, 코드 시작부분에 아래와 같은 코드가 등장하는 것을 볼 수 있다.

#!/usr/bin/env python3

 

이런 코드 라인을 shebang(hash-bang)이라고 부르는데,

해당 script를 실행하는데 사용할 interpreter의 위치를 명시하는데 사용한다.

 

shebang으로 interpreter를 명시하지 않으면, 운영체제는 해당 파일이 어떤 script인지 알 수가 없다.

 

 

예를 들어, 아래와 같이 Hello!를 출력하는 python 스크립트 hello.py를 shebang 없이 작성했다.

print("Hello!")

실행권한을 설정하고 hello.py을 실행시키면,

chmod +x hello.py
./hello.py

아래와 같이 syntax error가 뜨는 것을 확인할 수 있다.

이는 사용중인 운영체제가 hello.py를 파이썬 스크립트로 인식하지 못하고 있음을 예상할 수 있다.

(물론 "python3 hello.py"을 사용하면 아무 문제없다.)

 

 

이번에는 python3 interpreter가 사용되도록 shebang 코드블록을 추가하고, hello.py를 실행시켜보자.

#!/usr/bin/env python3
print("Hello!")

hello.py 스크립트가 제대로 실행되는 것을 확인할 수 있다.

 

 

 

Shebang(#!)에 대한 더 자세한 설명은 갓키피디아에서...

https://en.wikipedia.org/wiki/Shebang_(Unix)

728x90
LIST
Comments