1. linux source命令的作用?
我們可能經常需要修改到諸如/etc/profile,~/.bash_profile等這樣的配置文件,
一方面我們希望所作的修改在當前的環境中立即生效;
另一方面也希望所作的修改可以保存起來,以便于下次系統重新系統時仍然有效,
這時使用先在~/.bash_profile這樣的配置文件中修改好,再source ~/.bash_profile即可。
如果直接使用export在當前shell環境下修改,其缺點是重新啟動系統后修改會丟失;
如果你修改了配置文件,再重新啟動系統以便讓更改生效,顯得太麻煩了。
source ~/.bash_profile與. ~/.bash_profile是等效的,所以source命令又稱為點命令。
2. source ~/.bash_profile != sh ~/.bash_profile,為什么?
sh-# type source
source is a shell builtin
原因是source是linux builtin command,所以source ~/.bash_profile會在當前shell下執行;
而sh ~/.bash_profile會創建一個child process(sub shell)去執行,所以環境變量的更改設置
只會影響到sub shell。
通過實驗來進行驗證,寫一個source_test.sh的script,
#!/bin/sh
export PATH=$PATH:/my_home
echo "$PATH"
在執行source_test.sh這個script前后分別用echo $PATH來查看path,會發現沒有區別;
而如果source ./source_test.sh就會發現改動的$PATH在當前shell環境下生效了,
這驗證了上述分析是正確的。
?
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
