예:
메인스크립트.sh
cd /mnt/something
./buildscripts/000-script.sh
000-script.sh
cd /mnt/otherthing
mkdir something
exit
답변1
예, 실행 프로세스는 다음과 같습니다.아니요상위 프로세스의 작업 디렉터리를 변경합니다.
예:
caller.sh
#!/bin/bash echo -n "Caller 1 " ; pwd ./callee.sh echo -n "Caller 2 " ; pwd
수신자.sh
#!/bin/bash echo -n "Callee 1 " ; pwd cd /tmp echo -n "Callee 2 " ; pwd exit
호출이 caller.sh
생성됩니다
Caller 1 /Users/corti/tmp
Callee 1 /Users/corti/tmp
Callee 2 /tmp
Caller 2 /Users/corti/tmp
인쇄할 때 볼 수 있듯이 Caller 2
상위 프로세스에는 여전히 동일한 작업 디렉터리가 있습니다.
답변2
"아이"는 아무것도 기억하지 못합니다. 이는 현재 작업 디렉터리(cwd)에서 시작하는 프로세스의 기본 개념일 뿐입니다. Linux 시스템에서 /proc/*를 보면 각 프로세스에 대해 이 항목을 볼 수 있습니다.