2015-02-20

Ubunut 用指令讓 .bash_profile 的變更立即生效

阿舍知道應該有方法可以讓 .bash_profile 的變更馬上生效,不過,阿舍就覺得登出再登入就可以讓變更生效了,因此,當然就懶的去查,可是 ... 最近改這個 .bash_profile 的頻率有點多,一直這樣登出再登入切也不是辦法,基於可以更懶惰的前提,阿舍是一定要去找個方法來解決的啊 ! .... 呵 !



不過,在去找出可以解決阿舍的問題之前,阿舍要先解決一下阿舍放在心中多年的疑問,那就是,為什麼 .bash_profile 改完之後,不能用 sh 指令或直接執行 .bash_profile 檔案呢 ? 這個 .bash_profile 不也是個 script 檔嗎 ? 嗯 ... 阿舍曾經也有用 sh 指令來跑這個 .bash_profile 檔案,但是,是有跑完,只不過,沒有什麼效果發生哩 ! ....

sh 指令會執行在另一個處理程序中 ....
原來,不管你是用 sh 指令還是把 .bash_profile 用 chmod +x 來改成可以直接執行,都會讓這個 .bash_profile 的執行結果反應在另外一個虛無的時空裡 ... 喔 ! 不是啦 ! 是會反應在 Shell 程式幫這個 .bash_proofile 所建立的另一個執行環境中 (子處理程序),所以,現在的 Shell 環境中,當然就不會得到 .bash_profile 的執行結果了哩 !

因此,如果要讓 .bash_profile 的執行結果可以立即反應在現有的 Shell 環境的話,就需要用特殊的指令來執行這個 .bash_profile 檔案囉 ! 而這個指令就是阿舍查到的 source 指令哩 ! 基本上來說,它和 sh 指令最大的差別就在於,source 指令是在現在使用的這個 Shell 的環境來執行,所以,就可以達到阿舍要讓 .bash_profile 立即生效的效果囉 !

source ~/.bash_profile

上面就是用 source 指令來讓 .bash_profile 檔案馬上生效的指令,但是 ... 阿舍,後來又發現更簡單的方法,就是用點號指令來執行就可以了,可少敲 5 個字母哩 ! 操作方式如下。

. ~/.bash_profile

其實,上述的方法不只適用於讓 .bash_profile 的馬上生效,還可以使用於任何需要在現行的 Shell 環境進行操作的 Script 哩 !

推薦閱讀


有疑問? 問題還是沒解決嗎? 歡迎下方留言提問和討論 😁

沒有留言 :

張貼留言

歡迎留言提問和討論 .... 😁