運作如下指令./set_env.sh設定相關環境變量時發現:當此指令運作結束後,腳本中所設定的環境變量仍為空,感覺此腳本沒有執行;運作. set_env.sh腳本執行成功。通過上網查詢,發現是由于source指令與shell scripts的作用範圍不同而導緻的。
source指令與shell scripts的差別:
source在目前bash環境下執行指令,而scripts是啟動一個子shell來執行指令。這樣如果把設定環境變量(或alias等等)的指令寫進scripts中,就隻會影響子shell,無法改變目前的BASH,是以通過檔案(指令列)設定環境變量時,要用source 指令。
source指令簡介:
source指令也稱為“點指令”,也就是一個點符号(.)。source指令通常用于重新執行剛修改的初始化檔案,使之立即生效,而不必登出并重新登入。
用法:
source filename 或 . filename