[問題] 自定變數與環境變數

看板Linux作者 (非常念舊)時間10年前 (2013/12/22 20:02), 編輯推噓0(007)
留言7則, 4人參與, 最新討論串1/2 (看更多)
Linux之神的鳥哥,在基本第十一章介紹自定變數與環境變數的差別是一個不能 給子程式使用,另一個可以,而且他說明"在一個Bash底下的任何指令"都是新 的子程式",照他這麼說我感覺怪怪的。 your_path=~/test //自定變數路徑 cd ${your_path} //可以切換目錄到test 既然第二個指令是子程式(新的shell),那他應該看不到這your_path變數阿 第一行的指令應該要export your_path=~/test變成環境變數才對阿!?可是上面 指令卻行得通...為何?是我理解錯誤?這也與我前幾小時問的makefile問題相關.. 謝謝前輩。 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 220.136.155.200

12/22 20:13, , 1F
cd是shell builtin
12/22 20:13, 1F

12/22 20:19, , 2F
意思是說他是內建在bash中的?除非是額外指令才是呼叫
12/22 20:19, 2F

12/22 20:20, , 3F
其他shell囉?
12/22 20:20, 3F

12/22 20:29, , 4F
child process 是複製parent來的 但child改變不會反應回去
12/22 20:29, 4F

12/22 20:33, , 5F
欸.. 第二行其實即使cd是外部程式,shell也會幫你把變數
12/22 20:33, 5F

12/22 20:33, , 6F
展開以後再餵給cd,他不需要看得見這個變數呀 XD
12/22 20:33, 6F

12/22 20:45, , 7F
對喔="= 我也混亂了. 這兩行的變數展開是當前shell做的
12/22 20:45, 7F
文章代碼(AID): #1IjjJW-6 (Linux)
文章代碼(AID): #1IjjJW-6 (Linux)