Shell腳本在當前終端添加環境變量的正確姿勢

  • 在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是等效的。
    發表評論
    所有評論
    還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
    相關文章