#!/usr/bin/env foo #!vs /usr/bin/foo [중복]

#!/usr/bin/env foo #!vs /usr/bin/foo [중복]

위의 형식 중 bash, Python 등의 스크립트를 실행하는 데 "더 나은" 형식은 무엇입니까? 왜 나는 이것을 할 수 없습니까 #!$(which foo)? 전체 경로를 지정해야 합니까 env? 나는에서 수집했다이것대답은 /usr/bin/env모든 *nix-es에 대해 경로가 불변이라는 것 /usr/bin/python3입니다. 그렇습니까?

답변1

#!$(which foo)해당 줄은 커널에 의해 해석 되고 $().

PATH커널은 명령에 대한 환경 변수를 검색 하지 않습니다 . 그렇기 때문에 명령에 대한 전체 경로를 지정해야 합니다.

프로그램 을 사용하더라도 다른 경로(예: 홈 디렉터리)에 최신 버전의 Python이 설치되어 있을 수 있습니다 /usr/bin/env.PATH/usr/bin/python3

관련 정보