自定變數與環境變數 - Linux

Table of Contents

Linux之神的鳥哥,在基本第十一章介紹自定變數與環境變數的差別是一個不能

給子程式使用,另一個可以,而且他說明"在一個Bash底下的任何指令"都是新

的子程式",照他這麼說我感覺怪怪的。


your_path=~/test //自定變數路徑

cd ${your_path} //可以切換目錄到test


既然第二個指令是子程式(新的shell),那他應該看不到這your_path變數阿

第一行的指令應該要export your_path=~/test變成環境變數才對阿!?可是上面

指令卻行得通...為何?是我理解錯誤?這也與我前幾小時問的makefile問題相關..

謝謝前輩。


--

All Comments

Dorothy avatarDorothy2013-12-27
cd是shell builtin
Tracy avatarTracy2013-12-30
意思是說他是內建在bash中的?除非是額外指令才是呼叫
Kyle avatarKyle2014-01-01
其他shell囉?
Ursula avatarUrsula2014-01-03
child process 是複製parent來的 但child改變不會反應回去
Caroline avatarCaroline2014-01-06
欸.. 第二行其實即使cd是外部程式,shell也會幫你把變數
展開以後再餵給cd,他不需要看得見這個變數呀 XD
Harry avatarHarry2014-01-08
對喔="= 我也混亂了. 這兩行的變數展開是當前shell做的