[问题] process继承问题

楼主: Tverous (Orah~)   2017-08-26 18:20:36
在这请教关于process的问题
在your unix/linux the ultimate guide这本书上看到
当一个process继承他的parent's process时
会连parents's process所执行的当前directory一同继承
所以不能创造一个process来改变current directory
那想请问那关于cd这个命令不是就跟书上所讲的违背了吗?
因为cd不是就会改变目录
另外一个问题是
( cd progs ; pwd ) 以及 { cd progs ; pwd ; } 这两个命令串
第一种仅改变sub-shell的directory
但第二种则是会改变current shell's directory
想请问这两者为什么会有这样的差异? 背后原因又是什么
在这请教各位前辈 非常感谢
附上原文图片:
http://imgur.com/a/6ib7K
其中第3小点
作者: kenduest (小州)   2017-08-26 19:14:00
{ ..; } 那只是 group command, 还是在当下shell下执行() 那是开新的 sub shell 去执行所以既然是在当下 shell process 执行就算是正常情况cd 这个命令本身就是 shell 内建命令,不是新开一个child process 去运作,你书上应该是说外部程式执行
楼主: Tverous (Orah~)   2017-08-26 20:07:00
那请问不可以说cd它是init的child process吗?或是shell的child process?
作者: kenduest (小州)   2017-08-26 20:46:00
你想得太复杂了,你目前命令列操作环境是在 shell 下cd 就只是该 shell 内可以识别的内建命令所以该 shell 只是把自己工作目录切换到指定路径而已建议楼主可以先了解shell内建命令与外部程式命令差别
楼主: Tverous (Orah~)   2017-08-26 22:58:00
原来如此 大概了解了 非常感谢前辈

Links booklink

Contact Us: admin [ a t ] ucptt.com