스크립트 실행 방법의 차이점

스크립트 실행 방법의 차이점

다음 스크립트 실행 방법의 차이점에 대해 문의드리고 싶습니다.

.  script.sh      
../script.sh
. ./script.sh

미리 감사드립니다.

답변1

   script.sh
 ./script.sh
../script.sh

위의 모든 것에는 주어진 파일을 실행하도록 커널에 요청하는 쉘이 있으며, 이는 이름에 관계없이 쉘 스크립트일 필요는 없습니다. 첫 번째는 에서 파일을 찾고 PATH, 두 번째는 .현재 디렉터리( )에서 파일을 찾고, 세 번째는 상위 디렉터리에서 파일을 찾습니다.

.    script.sh
.  ./script.sh
. ../script.sh
source    script.sh
source  ./script.sh
source ../script.sh

둘 다 주어진 파일을 쉘 명령으로 열고 읽으려면 쉘 자체가 .필요합니다 .source현재 쉘, 마치 내부 명령이 쉘 명령줄에 주어진 것처럼 보입니다. 즉, 예를 들어 소스 스크립트에서 수행된 모든 변수 할당은 이후에 셸에서 표시되지만 일반 실행에서는 그렇지 않습니다. sourceyes 의 비표준 동의어입니다 .. 첫 번째는 다시 파일을 찾고 PATH, 두 번째는 현재 디렉터리를 찾고, 세 번째는 상위 디렉터리를 찾습니다. 나머지 3개도 마찬가지다.

(Zsh를 제외하면 sourceBash와 달리 현재 디렉터리가 먼저 확인됩니다. .Bash에서는 이 shopt설정이 sourcepath비활성화되어 있으면 검색 .도 수행되지 않습니다 .)sourcePATH

바라보다:

관련 정보