반응형
개요
#!/usr/bin/env python3
과 같이 #!
로 시작하는 magic line 혹은 shebang은 스크립트 파일의 첫 번째 줄에 표시하여, 스크립트를 실행할 때 어떤 인터프리터를 사용할지 명시하는 역할을 합니다. 매직 라인을 사용하면 코드의 이식성을 크게 높일 수 있는 장점이 있습니다.
#!/usr/bin/env python3
를 예로 들어서 자세히 설명하겠습니다.
1. 매직 라인 (Magic Line) or 쉐뱅(Shebang)의 역할
쉐뱅은 스크립트 파일의 첫 번째 줄에 나타나며, 파일을 실행할 때 사용할 인터프리터를 지정합니다.
형식:
#!/경로/인터프리터
#
와!
로 시작하며, 이를 쉐뱅(shebang) 또는 매직 라인 (magic line)이라고 부릅니다.- 쉐뱅 라인이 없으면 파일을 실행할 때 사용자가 명시적으로 인터프리터를 지정해야 합니다.
2. /usr/bin/env
의 역할
/usr/bin/env
는 환경 변수에 설정된 경로를 기반으로 적절한 실행 파일을 찾아줍니다.
#!/usr/bin/env python3
- 유연한 인터프리터 탐색:
- 스크립트가 실행되는 환경마다 Python 3의 경로가 다를 수 있습니다.
env
는 환경 변수$PATH
를 기준으로python3
의 경로를 찾아 실행합니다.- 예를 들어,
python3
이/usr/local/bin/python3
에 설치된 경우에도 동작합니다.
- 이식성:
- 다양한 환경(예: Linux, macOS, BSD 등)에서 스크립트를 동일하게 실행할 수 있습니다.
3. 직접 지정하는 대체 방식과 환경 변수 설정의 차이
쉐뱅에서 직접 Python 경로를 지정할 수도 있습니다:
#!/usr/bin/python3
비교
방식 | 장점 | 단점 |
---|---|---|
#!/usr/bin/env python3 |
유연성: 다양한 환경에서 Python 경로를 자동 탐색. | 환경 변수에 따라 의도치 않은 Python 버전 실행 가능. |
#!/usr/bin/python3 |
특정 Python 버전을 명확히 지정 가능. | 환경마다 Python 경로가 다를 수 있어 비이식적. |
4. 사용 예시
- 스크립트 작성:
#!/usr/bin/env python3 print("Hello, World!")
- 실행 권한 부여:
chmod +x script.py
- 스크립트 실행:
./script.py
5. 요약
#!/usr/bin/env python3
는 Python 3 인터프리터를 환경 변수$PATH
에서 찾아 실행합니다.- 유연성과 이식성을 제공하여 다양한 운영 체제 및 환경에서 스크립트를 쉽게 실행할 수 있습니다.
- 직접 경로 지정(
#!/usr/bin/python3
)보다 일반적으로 더 권장됩니다.
반응형
'리눅스' 카테고리의 다른 글
Linux: chmod 755 의미 (0) | 2023.04.15 |
---|---|
디스크 관련 명령들: 포맷, 마운트, 언마운트 (0) | 2021.06.15 |
Ubuntu 18.04: GUI 기반 NVidia Driver 설치 (0) | 2021.06.11 |
Ubuntu 18.04: 기존 Nvidia driver 직접 설치 (1) | 2021.06.11 |
Ubuntu 18.04 설치 2: VNC (0) | 2021.06.11 |