내 shebang에서 환경 변수를 어떻게 사용할 수 있습니까?

eric.frederich

특정 Python 설치로 실행해야하는 Python 스크립트가 있습니다. 함께 실행되도록 shebang을 만드는 방법이 $FOO/bar/MyCustomPython있습니까?

Gilles 'SO- 그만 사악함'

shebang 라인은 매우 제한적입니다. 많은 유닉스 변형 (Linux 포함)에서는 명령과 단일 인수라는 두 단어 만 사용할 수 있습니다. 또한 종종 길이 제한이 있습니다.

일반적인 해결책은 작은 셸 래퍼를 작성하는 것입니다. Python 스크립트의 이름을 지정하고 foo.py옆에 쉘 스크립트를 놓고 foo.py호출합니다 foo. 이 접근 방식은 Python 스크립트에 특정 헤더가 필요하지 않습니다.

#!/bin/sh
exec "$FOO/bar/MyCustomPython" "$0.py" "$@"

또 다른 유혹적인 접근 방식은 위와 같은 래퍼 스크립트를 작성 #!/path/to/wrapper/script하고 Python 스크립트에 shebang 줄로 추가하는 것입니다. 그러나 대부분의 유니스는 shebang 스크립트 연결을 지원하지 않으므로 작동하지 않습니다.

경우 MyCustomPython에 있었다 $PATH, 당신은 사용할 수 env를 찾기 위해 :

#!/usr/bin/env MyCustomPython
import …

또 다른 접근 방식은 스크립트가 유효한 셸 스크립트 (올바른 Python 인터프리터를 자체로드)와 대상 언어 (여기서는 Python)의 유효한 스크립트가되도록 배열하는 것입니다. 이를 위해서는 대상 언어에 대해 이러한 이중 언어 스크립트를 작성하는 방법을 찾아야합니다. Perl에서 이것은 if $running_under_some_shell.

#!/bin/sh
eval 'exec "$FOO/bar/MyCustomPerl" -wS $0 ${1+"$@"}'
    if $running_under_some_shell;
use …

다음은 Python에서 동일한 효과를 얻는 한 가지 방법입니다. "true"에서 true유틸리티는 인수 (두 개의 단일 문자 문자열 :') 를 무시하고 참 값을 반환합니다. Python "true"에서은 부울로 해석 될 때 참인 문자열이므로 if항상 참이고 문자열 리터럴을 실행 하는 명령어입니다.

#!/bin/sh
if "true" : '''\'
then
exec "$FOO/bar/MyCustomPython" "$0" "$@"
exit 127
fi
'''
import …

Rosetta 코드에는 여러 다른 언어로 된 이중 언어 스크립트가 있습니다.

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

함수 내에서 사용자를 어떻게 변경할 수 있습니까?

분류에서Dev

awk의 정규식 내에서 환경 변수를 어떻게 사용할 수 있습니까?

분류에서Dev

awk의 정규식 내에서 환경 변수를 어떻게 사용할 수 있습니까?

분류에서Dev

SELECT 문 내에서 변수를 어떻게 사용할 수 있습니까?

분류에서Dev

arrayformula () 내에서 countif () 범위를 어떻게 변경할 수 있습니까?

분류에서Dev

Uwsgi를 어떻게 사용할 수 있습니까? 내 파이썬 홈 경로는 어디에 있습니까?

분류에서Dev

su-에서 환경 변수를 어떻게 보존 할 수 있습니까?

분류에서Dev

유성에서 환경 변수를 어떻게 확인할 수 있습니까?

분류에서Dev

최대 절전 모드 구성 파일에서 환경 변수를 어떻게 사용할 수 있습니까?

분류에서Dev

gdrive에서 사용자를 어떻게 변경할 수 있습니까?

분류에서Dev

다음 Django 코드를 어떻게 수정할 수 있습니까? 함수 명령 내에서 변수 사용

분류에서Dev

이스케이프 클로저 내에서 inout 매개 변수를 어떻게 변경할 수 있습니까?

분류에서Dev

SVG by JavaScript 내에서 패턴 이미지 매개 변수를 어떻게 변경할 수 있습니까?

분류에서Dev

Rust에서 제네릭 타입으로 내부 변경을 어떻게 사용할 수 있습니까?

분류에서Dev

Vagrant 프로비저닝 중에 환경 변수를 어떻게 사용할 수 있습니까?

분류에서Dev

nixos buildFHSUserEnv에 환경 변수를 어떻게 전달할 수 있습니까?

분류에서Dev

저장 프로 시저 내에서 SELECT에서 반환 된 값을 어떻게 변경할 수 있습니까?

분류에서Dev

Cygwin에서 Windows Python 환경을 어떻게 사용할 수 있습니까?

분류에서Dev

enum 내에서 함수 참조를 어떻게 사용할 수 있습니까?

분류에서Dev

함수 내에서 sudo를 어떻게 사용할 수 있습니까?

분류에서Dev

jquery 함수 내에서 PHP를 어떻게 사용할 수 있습니까?

분류에서Dev

Jest : 동적 환경 변수를 어떻게 사용할 수 있습니까?

분류에서Dev

Gnome Schedule에서 내장 기능 경고를 어떻게 사용할 수 있습니까?

분류에서Dev

함수 내에서 노드가 가리키는 위치를 어떻게 변경할 수 있습니까?

분류에서Dev

생산과 단계 사이에 Electron의 환경 변수를 어떻게 변경할 수 있습니까?

분류에서Dev

sshd의 환경에서 새 SSH 세션으로 환경 변수를 어떻게 전달할 수 있습니까?

분류에서Dev

Cubit 내부에서 CubitState의 변수를 어떻게 사용할 수 있습니까? Flutter / Bloc

분류에서Dev

내 템플릿에서 Django DeleteView를 어떻게 사용할 수 있습니까?

분류에서Dev

Julia 내에서 Windows cmd를 어떻게 사용할 수 있습니까?

Related 관련 기사

  1. 1

    함수 내에서 사용자를 어떻게 변경할 수 있습니까?

  2. 2

    awk의 정규식 내에서 환경 변수를 어떻게 사용할 수 있습니까?

  3. 3

    awk의 정규식 내에서 환경 변수를 어떻게 사용할 수 있습니까?

  4. 4

    SELECT 문 내에서 변수를 어떻게 사용할 수 있습니까?

  5. 5

    arrayformula () 내에서 countif () 범위를 어떻게 변경할 수 있습니까?

  6. 6

    Uwsgi를 어떻게 사용할 수 있습니까? 내 파이썬 홈 경로는 어디에 있습니까?

  7. 7

    su-에서 환경 변수를 어떻게 보존 할 수 있습니까?

  8. 8

    유성에서 환경 변수를 어떻게 확인할 수 있습니까?

  9. 9

    최대 절전 모드 구성 파일에서 환경 변수를 어떻게 사용할 수 있습니까?

  10. 10

    gdrive에서 사용자를 어떻게 변경할 수 있습니까?

  11. 11

    다음 Django 코드를 어떻게 수정할 수 있습니까? 함수 명령 내에서 변수 사용

  12. 12

    이스케이프 클로저 내에서 inout 매개 변수를 어떻게 변경할 수 있습니까?

  13. 13

    SVG by JavaScript 내에서 패턴 이미지 매개 변수를 어떻게 변경할 수 있습니까?

  14. 14

    Rust에서 제네릭 타입으로 내부 변경을 어떻게 사용할 수 있습니까?

  15. 15

    Vagrant 프로비저닝 중에 환경 변수를 어떻게 사용할 수 있습니까?

  16. 16

    nixos buildFHSUserEnv에 환경 변수를 어떻게 전달할 수 있습니까?

  17. 17

    저장 프로 시저 내에서 SELECT에서 반환 된 값을 어떻게 변경할 수 있습니까?

  18. 18

    Cygwin에서 Windows Python 환경을 어떻게 사용할 수 있습니까?

  19. 19

    enum 내에서 함수 참조를 어떻게 사용할 수 있습니까?

  20. 20

    함수 내에서 sudo를 어떻게 사용할 수 있습니까?

  21. 21

    jquery 함수 내에서 PHP를 어떻게 사용할 수 있습니까?

  22. 22

    Jest : 동적 환경 변수를 어떻게 사용할 수 있습니까?

  23. 23

    Gnome Schedule에서 내장 기능 경고를 어떻게 사용할 수 있습니까?

  24. 24

    함수 내에서 노드가 가리키는 위치를 어떻게 변경할 수 있습니까?

  25. 25

    생산과 단계 사이에 Electron의 환경 변수를 어떻게 변경할 수 있습니까?

  26. 26

    sshd의 환경에서 새 SSH 세션으로 환경 변수를 어떻게 전달할 수 있습니까?

  27. 27

    Cubit 내부에서 CubitState의 변수를 어떻게 사용할 수 있습니까? Flutter / Bloc

  28. 28

    내 템플릿에서 Django DeleteView를 어떻게 사용할 수 있습니까?

  29. 29

    Julia 내에서 Windows cmd를 어떻게 사용할 수 있습니까?

뜨겁다태그

보관