Shell腳本在當前終端添加環境變量的正確姿勢
原創
吳尼瑪cs
2021-08-25 01:55
在Linux中我們經常需要設置一些環境變量,設置環境變量的方式有很多,有些是對當前用戶有效的,有些是對所有用戶有效的,有些是永久的。很多時候我們會有這樣的需求,只要在當前終端中讓設置的環境變量生效,這樣退出該終端後不影響其他程序的運行。
一般可以通過export命令來設置環境編寫,比如設置動態庫加載路徑export LD_LIBRARY_PATH=./lib。
如果需要配置的環境變量很多,或者每次做某件工作前都得配置這些環境變量,這時通過手動輸入命令的方式就很不方便了,這時就需要shell腳本登場。
我們可以將配置的命令寫到shell腳本中,這樣只用執行一下腳本就能完成工作了,程序員的原則就是能用腳本做的事情絕不動手。
寫好腳本set_env.sh後,我們歡欣鼓舞的在當前終端中執行./set_env.sh,卻會發現設置並沒有生效,用export命令查看也沒有看到新的配置。
關鍵原因就在於通過./set_env.sh這種方式執行一個腳本文件其實腳本中的命令是在子shell中運行的,執行的結果只對子shell有效,並不會在父shell中生效。
這種情況下正確的姿勢就是使用source set_env.sh,這樣設置的環境變量就會在當前終端中生效。
source命令的作用是在當前bash終端下讀取並執行shell文件中的命令。
更簡單的命令是. set_env.sh,點命令(.)和source是等效的。