shell中使用source conf.sh,是直接運行conf.sh的命令,不創建子shell,類似與html中include,而sh是則創建子shell,
子shell里面 的變量父shell無法使用,對環境變量的修改也不影響父shell。父shell中的局部變量,子shell也無法使用,
只有父shell的環境變量, 子shell能夠使用。還有一個exec conf.sh,這個與source類似,區別是exec執行完,不再執行后面的語句。
source命令的作用就是用來執行一個腳本,那么:source a.sh 同直接執行 ./a.sh 有什么不同呢,
比如你在一個腳本里export $KKK=111 ,如果你用./a.sh執行該腳本,執行完畢后,你運行 echo $KKK ,發現沒有值,
如果你用source來執行,然后再echo ,就會發現KKK=111。因為調用./a.sh來執行shell是在一個子shell里運行的,
所以執行后,結果并沒有反應到父shell里,不過source不同,他就是在本shell中執行的,所以能看到結果。