例子:
主脚本.sh
cd /mnt/something
./buildscripts/000-script.sh
000-脚本.sh
cd /mnt/otherthing
mkdir something
exit
答案1
是的,执行的过程将不是更改父进程的工作目录。
例子:
来电者.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/*,您可以看到每个进程的该条目。