中文字幕亚洲第一精品|精品国产免费一区二区|久久婷婷五月六月综合版|中文字幕熟妇久久久人妻|久久综合精品国产一区无码|国产成人精品永久免费视频|午夜亚洲国产精品理论片a级|久久精品一区二区三区无码护土

 訪問手機(jī)版  

Linux常用命令|Linux培訓(xùn)學(xué)習(xí)|考試認(rèn)證|工資待遇與招聘,認(rèn)準(zhǔn)超級(jí)網(wǎng)工!

招聘|合作 登陸|注冊

網(wǎng)絡(luò)工程師培訓(xùn)

當(dāng)前位置:網(wǎng)絡(luò)工程師 > 技術(shù)課程 > linux > 熱點(diǎn)關(guān)注 > linux常用命令

linux下的source命令(.命令)解釋及應(yīng)用

時(shí)間:2019-06-15

linux解壓命令_linux關(guān)機(jī)命令_linux命令

轉(zhuǎn)自:https://blog.csdn.net/LEON1741/article/details/81944879

用法:

source filename # filename必須是可執(zhí)行的腳本文件

或者

. filename # 注意“.”號(hào)后面還有一個(gè)空格

linux解壓命令_linux關(guān)機(jī)命令_linux命令

比較:

“source filename”與“sh filename”、“./filename”這三個(gè)命令都可以用于執(zhí)行一個(gè)腳本文件,那么它們之間的區(qū)別又如何呢?

當(dāng)shell腳本具有可執(zhí)行權(quán)限時(shí),用sh filename與./filename是沒有區(qū)別的。./filename是因?yàn)楫?dāng)前目錄沒有在PATH中,所以”.”是用來表示當(dāng)前目錄的。

sh filename會(huì)重新建立一個(gè)子shell,在子shell中執(zhí)行腳本里面的語句,該子shell繼承父shell的環(huán)境變量,但子shell是新建的,其改變的變量不會(huì)被帶回父shell,除非使用export。

source filename讀取腳本里面的語句依次在當(dāng)前shell里面執(zhí)行,沒有建立新的子shell。那么腳本里面所有新建、改變變量的語句都會(huì)保存在當(dāng)前shell里面。

linux解壓命令_linux命令_linux關(guān)機(jī)命令

舉例:

新建一個(gè)test.sh腳本,內(nèi)容為:A=1;

修改其可執(zhí)行權(quán)限:chmod +x test.sh;

運(yùn)行sh test.sh后,echo $A,顯示為空,因?yàn)锳=1并未傳回給當(dāng)前shell;

運(yùn)行./test.sh后,也是一樣的效果;

運(yùn)行source test.sh 或者 . test.sh,然后echo $A,則會(huì)顯示1,說明A=1的變量在當(dāng)前shell中;