상대 경로를 통해 스크립트 내에서 호출되는 경우 어떤 실행 파일이 호출됩니까?

상대 경로를 통해 스크립트 내에서 호출되는 경우 어떤 실행 파일이 호출됩니까?

mm다음 스크립트가 있다고 가정해 보겠습니다 dir1.

#Contents of mm
echo "Hello Main!"
./hd

내 비밀번호는 입니다 dir2. 이제 다음을 실행합니다 mm.

$ ../dir1/mm

hd및 이라는 dir1실행 파일이 있습니다 dir2. 나는 그것을 시도했고 hd실행 dir2되었습니다. hd에서 실행하지 않는 이유는 무엇입니까 dir1?

답변1

파일을 실행해도 프로세스의 현재 작업 디렉터리가 파일 디렉터리로 변경되지 않기 때문입니다.

실행 파일은 실행 후 선택적으로 실행할 수 있습니다. 예를 들어 저는 가끔 이렇게 합니다.

cd "$(dirname "$0")" 

내 스크립트에서는 현재 작업 디렉터리가 실행 파일 디렉터리인지 확인하지만 그렇게 할 의무는 없습니다.

관련 정보