상위 디렉터리에서만 .sh 파일을 실행할 수 있고 하위 디렉터리에서는 실행할 수 없는 이유는 무엇입니까?

상위 디렉터리에서만 .sh 파일을 실행할 수 있고 하위 디렉터리에서는 실행할 수 없는 이유는 무엇입니까?

나는 이것이 작동하지 않는다는 것을 알았습니다.

/tomcatDirectory/bin $ startup.sh //command not found

하지만 효과가 있어요

/tomcatDirectory $ bin/startup.sh

나는 Windows에 익숙합니다. 작업 디렉터리에서는 프로그램을 실행할 수 없고 상위 폴더에서만 프로그램을 실행할 수 있다는 것이 나에게는 직관에 어긋나는 것 같습니다.

여기서 무슨 일이 일어나고 있는지에 대한 큰 그림은 무엇입니까?

답변1

현재 디렉토리(즉 .)가 경로에 없습니다. 사용해 보세요

./startup.sh

다음 명령을 사용하여 경로를 확인할 수 있습니다.

echo ${PATH}

할 수 있다.경로에 현재 디렉터리( )를 추가합니다. 하지만 이는 위험하다고 간주됩니다(특히 .다른 디렉터리보다 먼저). 명령이 입력되면 쉘은 먼저 현재 디렉터리에서 해당 명령을 실행하려고 시도합니다. 그러면 대신 기존 콘텐츠가 실행됩니다.기본하나.

요약: 현재 디렉터리에서 실행 파일을 실행하면 됩니다 ./.

답변2

."startup.sh"는 파일 경로처럼 보이지 않고 PATH 환경 변수에도 없기 때문입니다. 하지만 아직 시작할 수는 있어요./startup.sh

관련 정보