Linux Source命令及指令碼的執行方式解析

2021-06-09 12:50:48 字數 1098 閱讀 6071

當我修改了/etc/profile檔案,我想讓它立刻生效,而不用重新登入;這時就想到用

source

命令,如:source /etc/profile

對source進行了

學習,並且用它與sh 執行指令碼進行了對比,現在總結一下。

source命令:

source命令也稱為「

點命令」,也就是乙個點符號(.),是bash的內部命令。

功能:使

shell

讀入指定的shell程式檔案並依次執行檔案中的所有語句

source命令通常用於重新執行剛修改的初始化檔案,使之立即生效,而不必登出並重新登入。

用法:source filename 或 . filename

source命令(從 c shell 而來)是bash shell的內建命令;點命令(.),就是個點符號(從bourne shell而來)是source的另一名稱。

source filename 與 sh filename 及./filename執行指令碼的區別在那裡呢?

1.當shell指令碼具有可執行許可權時,用sh filename與./filename執行指令碼是沒有區別得。./filename是因為當前目錄沒有在path中,所有"."是用來表示當前目錄的。

2.sh filename 重新建立乙個子shell,在子shell中執行指令碼裡面的語句,該子shell繼承父shell的環境變數,但子shell新建的、改變的變數不會被帶回父shell,除非使用export。

3.source filename:這個命令其實只是簡單地讀取指令碼裡面的語句依次在當前shell裡面執行,沒有建立新的子shell。那麼指令碼裡面所有新建、改變變數的語句都會儲存在當前shell裡面。

舉例說明:

1.新建乙個

test

.sh指令碼,內容為:a=1

2.然後使其可執行chmod +x test.sh

3.執行sh test.sh後,echo $a,顯示為空,因為a=1並未傳回給當前shell

4.執行./test.sh後,也是一樣的效果

5.執行source test.sh 或者 . test.sh,然後echo $a,則會顯示1,說明a=1的變數在當前shell中

Linux Source命令及指令碼的執

當我修改了 etc profile檔案,我想讓它立刻生效,而不用重新登入 這時就想到用source命令,如 source etc profile 對source進行了學習,並且用它與sh 執行指令碼進行了對比,現在總結一下。source命令 source命令也稱為 點命令 也就是乙個點符號 是bas...

Linux Source命令及指令碼的執行方式解析

當我修改了linux裡的 etc profile檔案,我想讓它立刻生效,而不用重新登入 這時就想到用source命令,如 source etc profile 對source進行了學習,並且用它與sh 執行指令碼進行了對比,現在總結一下。source命令 source命令也稱為 點命令 也就是乙個點...

Linux Source命令及指令碼的執行方式解析

當我修改了 etc profile檔案,我想讓它立刻生效,而不用重新登入 這時就想到用 source 命令,如 source etc profile 對source進行了 學習,並且用它與sh 執行指令碼進行了對比,現在總結一下。source命令 source命令也稱為 點命令 也就是乙個點符號 是...