Linux下source命令詳解

2021-08-08 05:14:06 字數 2209 閱讀 3820

source filename
在當前bash環境下讀取並執行filename中的命令。

*注:該命令通常用命令「.」來替代。

使用範例:

source filename 

. filename(中間有空格)

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

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

例如,假如在登入後對 .bash_profile 中的 editer 和 term 變數做了修改,則能夠用source命令重新執行 .bash_profile 中的命令而不用登出並重新登入。比如您在乙個指令碼裡export kk

k=111,假如

您用./

a.sh

執行該腳

本,執行

完畢後,

您執行e

cho kkk,發現沒有值,假如您用source來執行 ,然後再echo,就會發現kkk=111。因為呼叫./a.sh來執行shell是在乙個子shell裡執行的,所以執行後,結構並沒有反應到父shell裡,但是source不同他就是在本shell中執行的,所以能夠看到結果。

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

在編譯核心時,常常要反覆輸入一長串命令,如

make mrproper

make menuconfig

make dep

make clean

make bzimage

.......

這些命令既長,又繁瑣。而且有時候容易輸錯,浪費你的時間和精力。如果把這些命令做成乙個檔案,讓它自動按順序執行,對於需要多次反覆編譯核心的使用者來說,會很方便。

用source命令可以辦到這一點。它的作用就是把乙個檔案的內容當成是shell來執行。

先在/usr/src/linux-2.4.20目錄下建立乙個檔案,取名為make_command,在其中輸入如下內容:

make mrproper &&

make menuconfig &&

make dep &&

make clean &&

make bzimage &&

make modules &&

make modules_install &&

cp arch/i386/boot/bzimge /boot/vmlinuz_new &&

cp system.map /boot &&

vi /etc/lilo.conf &&

lilo -v

檔案建立好之後,以後每次編譯核心,只需要在/usr/src/linux-2.4.20下輸入source make_command就行了。這個檔案也完全可以做成指令碼,只需稍加改動即可。

shell程式設計中的命令有時和c語言是一樣的。&&表示與,||表示或。把兩個命令用&&聯接起來,如make mrproper && make menuconfig,表示要第乙個命令執行成功才能執行第二個命令。對執行順序有要求的命令能保證一旦有錯誤發生,下面的命令不會盲目地繼續執行。

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

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

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

linux下的source命令

zz linux source命令及指令碼的執行方式解析 當我修改了 etc profile檔案,我想讓它立刻生效,而不用重新登入 這時就想到用 source 命令,如 source etc profile 對source進行了 學習,並且用它與sh 執行指令碼進行了對比,現在總結一下。source...

Linux下source命令詳解

原文 source filename source filename filename 中間有空格 make mrproper make menuconfig make dep make clean make bzimage make mrproper make menuconfig make de...

linux下的Source命令

source命令用法 source filename 作用 在當前bash環境下讀取並執行filename中的命令。注 該命令通常用命令 來替代。如 source bash rc 與 bash rc 是等效的。注意 source命令與shell scripts的區別是,source在當前bash環境...