看板 Linux 關於我們 聯絡資訊
在這請教關於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://www.ptt.cc/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
kenduest: { ..; } 那只是 group command, 還是在當下shell下執行 08/26 19:14
kenduest: () 那是開新的 sub shell 去執行 08/26 19:14
kenduest: 所以既然是在當下 shell process 執行就算是正常情況 08/26 19:15
kenduest: cd 這個命令本身就是 shell 內建命令,不是新開一個 08/26 19:38
kenduest: child process 去運作,你書上應該是說外部程式執行 08/26 19:39
Tverous: 那請問不可以說cd它是init的child process嗎? 08/26 20:07
Tverous: 或是shell的child process? 08/26 20:17
kenduest: 你想得太複雜了,你目前命令列操作環境是在 shell 下 08/26 20:46
kenduest: cd 就只是該 shell 內可以識別的內建命令 08/26 20:47
kenduest: 所以該 shell 只是把自己工作目錄切換到指定路徑而已 08/26 20:50
kenduest: 建議樓主可以先瞭解shell內建命令與外部程式命令差別 08/26 20:51
Tverous: 原來如此 大概了解了 非常感謝前輩 08/26 22:58