作者Tverous (Orah~)
看板Linux
标题[问题] process问题
时间Sat Aug 26 18:20:36 2017
在这请教关於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小点
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 49.159.107.85
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Linux/M.1503742839.A.88E.html
※ 编辑: Tverous (49.159.107.85), 08/26/2017 18:21:21
※ 编辑: Tverous (49.159.107.85), 08/26/2017 18:37:16
1F:→ kenduest: { ..; } 那只是 group command, 还是在当下shell下执行 08/26 19:14
2F:→ kenduest: () 那是开新的 sub shell 去执行 08/26 19:14
3F:→ kenduest: 所以既然是在当下 shell process 执行就算是正常情况 08/26 19:15
4F:→ kenduest: cd 这个命令本身就是 shell 内建命令,不是新开一个 08/26 19:38
5F:→ kenduest: child process 去运作,你书上应该是说外部程式执行 08/26 19:39
6F:→ Tverous: 那请问不可以说cd它是init的child process吗? 08/26 20:07
7F:→ Tverous: 或是shell的child process? 08/26 20:17
8F:→ kenduest: 你想得太复杂了,你目前命令列操作环境是在 shell 下 08/26 20:46
9F:→ kenduest: cd 就只是该 shell 内可以识别的内建命令 08/26 20:47
10F:→ kenduest: 所以该 shell 只是把自己工作目录切换到指定路径而已 08/26 20:50
11F:→ kenduest: 建议楼主可以先了解shell内建命令与外部程式命令差别 08/26 20:51
12F:→ Tverous: 原来如此 大概了解了 非常感谢前辈 08/26 22:58