在腳本中使用source命令不生效


問題描述
    1. 一次寫自動化安裝腳本,要安裝java,需要將JAVA_HOME寫到/etc/profile中,然后使用source命令,但是發現profile文件中確實有JAVA_HOME,使用echo $JAVA_HOME無輸出值。手工source一下后發現可以輸出$JAVA_HOME

問題原因
    1. 使用bash來調用腳本,而不是使用source或者.來調用腳本。導致了這個問題
    2. 當我們使用source或者.調用腳本時,實際上是叫腳本放到當前環境中,對當前環境生效。實際上source和.是等值的。
    3. 使用bash來調用腳本時,會啟動一個自shell來啟動腳本,這是的source /etc/profile只是對子shell有用,一旦退出子shell,便沒有效果了。
所以如果在腳本中有source命令,並且想讓該命令在退出腳本后依舊生效,建議使用使用source 腳本名來調用腳本。




免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM