我被困在这几个小时了:
cd /dir1
(cd $HOME); pwd;
为什么pwd
仍然说/dir1
并且没有访问我的主目录?
答案 0 :(得分:2)
括号开始子shell:shell调用fork
,括号内的命令在子进程中执行。父进程等待子进程退出然后继续执行。所以发生的事情是:
cd /dir1
:shell执行chdir("/dir1")
。fork
,然后父进程等待子进程退出。cd $HOME
:子shell执行chdir("/home/jurgen")
。wait
调用将返回。pwd
:shell打印其当前目录,即/dir1
。