`test.sh`와 `./test.sh`의 미묘한 차이점은 무엇입니까?

`test.sh`와 `./test.sh`의 미묘한 차이점은 무엇입니까?

다음 스크립트가 있습니다.

$ cat test.sh
#! /usr/local/bin/bash
date

달리다,

$ test.sh
-bash: test.sh: command not found

효과가있다

$ ./test.sh
Thu Oct 25 18:04:45 CST 2018

그래도 나는 그것이 test.sh와 같다는 것을 안다 ./test.sh.

$ file test.sh
test.sh: Bourne-Again shell script text executable, ASCII text
$ file ./test.sh
./test.sh: Bourne-Again shell script text executable, ASCII text

test.sh와 의 미묘한 차이점은 무엇인가요 ./test.sh?

답변1

명령을 실행하는 이 두 가지 방법은 동일하지 않습니다. 를 사용하면 현재 디렉터리에서 스크립트를 실행할 ./test.sh수 있습니다 . test.sh를 사용하면 에서 test.sh실행할 수 있습니다 .test.sh$PATH

script 를 호출하면 testrun 은 셸에 내장된 유틸리티를 test사용하고 (출력 없음) run 은 스크립트를 실행합니다.test./test

관련된:

관련 정보