1. 程式人生 > >Linux系統 source 命令及系統變數

Linux系統 source 命令及系統變數

一、用法

source Filename

// 在當前的 bash 環境中讀取並執行Filename中的命令。同時source常用於
// 重新執行剛剛修改的文件,使其立即生效。
// source命令也常常等同於點命令(.)
// 如以下兩個命令是相同的作用:

source Filename

. Filename    # . 與Filename之間有空格

二、

source命令從 C Shell 而來,是bash shell的內建命令。點命令,就是個點符號,從Bourne Shell而來,是source的另一名稱。

同樣的,當前指令碼中配置的變數也將作為指令碼的環境,source(或點)命令通常用於重新執行剛修改的初始化文件,

如 .bash_profile 和 .profile 等等。

如在登入後對 .bash_profile 中的 EDITER 和 TERM 變數做了修改,則能夠用source命令重新執行 .bash_profile 中的命令而不用登出並重新登入。

source命令(從 C Shell 而來)是bash shell的內建命令。點命令,就是一個點符號,(從Bourne Shell而來)是source的另一名稱。這兩個命令都以一個指令碼為引數,該指令碼將作為當前shell的環境執行,即不會啟動一個新的子程序。所有在指令碼中設定的變數將成為當前Shell的一部分。

三、source filename 與 sh filename 及./filename執行指令碼的區別

1、當shell指令碼具有可執行許可權時,用sh filename與./filename執行指令碼是沒有區別得。./filename是因為當前目錄沒有在PATH      中,所有”.”是用來表示當前目錄的。
2、sh filename 重新建立一個子shell,在子shell中執行腳本里面的語句,該子shell繼承父shell的環境變數,但子shell新建的、改變的變數不會被帶回父shell。
3、source filename:這個命令其實只是簡單地讀取腳本里面的語句依次在當前shell裡面執行,沒有建立新的子shell。那麼腳本里面所有新建、改變變數的語句都會儲存在當前shell裡面。

四、系統變數與使用者變數

1、系統變數:對所有使用者有效,只需要執行其中一個即可

修改其中一個即可:
/etc/profile  
/etc/environment

執行其中一個即可:
source /etc/profile
source /etc/environment

2、使用者變數,只對當前使用者有效

編輯其中一個即可:
~/.profile
~/.bashrc

執行其中一個即可:
source ~/.profile
source ~/.bashrc

參考資料:

[1] https://blog.csdn.net/violet_echo_0908/article/details/52056071

[2] https://blog.csdn.net/LEON1741/article/details/81944879