실행 가능한 스크립트를 실행하는 데 ./filename이 필요한 이유는 무엇입니까? [복사]

실행 가능한 스크립트를 실행하는 데 ./filename이 필요한 이유는 무엇입니까? [복사]

내 홈 디렉토리에 Python 스크립트 파일 test.py를 생성하고 실행하여 chmod +x test.py실행 가능하게 만들고 파일 헤더로 배치한 후 다음을 사용하여 OS X에서 스크립트를 실행할 #!usr/bin/env수 있기를 원합니다 .bash

$ test.py

하지만 bash다음을 반환합니다.

-bash: test.py: command not found

다음 명령이 유효합니다:

$ ./test.py

이 실행 가능 스크립트에 현재 작업 디렉터리의 상대 경로가 필요한 이유는 무엇입니까?

답변1

쉘에 실행 명령을 실행하면 프로그램의 실행 경로($PATH)를 검색합니다. 명령 앞에 경로(예: ./)를 붙이면 쉘이 검색하는 것을 방지하고 명시적으로 지정된 특정 프로그램을 사용하도록 쉘에 지시합니다.

프로그램이 검색 경로에 없는 디렉토리에 있는 경우 프로그램 경로를 명시적으로 표시해야 합니다.

관련 정보