mm
다음 스크립트가 있다고 가정해 보겠습니다 dir1
.
#Contents of mm
echo "Hello Main!"
./hd
내 비밀번호는 입니다 dir2
. 이제 다음을 실행합니다 mm
.
$ ../dir1/mm
hd
및 이라는 dir1
실행 파일이 있습니다 dir2
. 나는 그것을 시도했고 hd
실행 dir2
되었습니다. hd
에서 실행하지 않는 이유는 무엇입니까 dir1
?
답변1
파일을 실행해도 프로세스의 현재 작업 디렉터리가 파일 디렉터리로 변경되지 않기 때문입니다.
실행 파일은 실행 후 선택적으로 실행할 수 있습니다. 예를 들어 저는 가끔 이렇게 합니다.
cd "$(dirname "$0")"
내 스크립트에서는 현재 작업 디렉터리가 실행 파일 디렉터리인지 확인하지만 그렇게 할 의무는 없습니다.