shebang에서 env를 사용하는 이유는 무엇입니까?


답변:


11

어떤 사람들은 시스템과 다른 파이썬 (perl 등)을 사용할 수 있습니다. /usr/bin/env python현재 버전으로 구성된 버전을 실행하여 스크립트를 더 이식 가능하게 만들 수 있습니다.

반면에 일부 시스템에는 시스템이 없습니다 /usr/bin/env. 또한 단일 인수로 해석 되므로 를 #!/usr/bin/env foo x대신 할 수 없습니다 . 따라서 접근 방식의 가치는 논쟁의 여지가 있습니다.#!foo xfoo x


1
어디에서 구성 했습니까? 에서 info coreutils 'env invocation'내가 차종을 호출이 양식을 볼 수 있는지 대신 내장 된 쉘의 외부 바이너리는 있지만 표시 방법 env python에서 어떤 다른 없을 것이다 python?
Tuminoid

4
당신은 PATH아마 포함 /usr/local/bin첫째. 누군가가 수동으로 파이썬을 설치했다면 env그것을 호출하고 그것을 #!/usr/bin/python우회합니다.
Robie Basak

2
virtualenv매우 인기있는 도구이며 작업 디렉토리에 python 실행 파일을 설치합니다. env제대로 작동 하려면 트릭 이 필요 합니다.
Flimm

2
@Tuminoid : 네 말이 맞다 : env python와 같다 python. 그러나 문제는 다음과 같이 shebang을 작성할 수 없다는 것입니다 #!python. 전체 경로를 지정해야합니다.
Andrea Corbellini
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.