source 命令可以在當(dāng)前 shell 中執(zhí)行文件中的命令,也可以用于刷新環(huán)境變量。 不過老實(shí)說,它的主要用途就是用于刷新環(huán)境變量。 其語法格式如下所示:
source filename [options]
也可以用一個點(diǎn) . 來代替 source 命令:
. filename [options]
source 命令是如何工作的
這個命令的語法很簡單,但是要理解它,需要稍微了解一些 Linux 概念。 如果你是 Linux 新手,可能對于變量是什么只有一個比較模糊的概念。 不過沒關(guān)系,我們都是從這個階段過來的。
為了方便理解 source 命令,下面我們是對變量做一個簡短的解釋。
關(guān)于變量
你可以打開一個 bash 終端來創(chuàng)建一個新的變量,變量可以被認(rèn)為是一個占位符,可以用來指向一條信息(字母,數(shù)字或者符號等)。
比如,我們創(chuàng)建一個名為 name 的變量,將其賦值為 Christopher。
在 bash 中,命名變量的格式為:
variable_name=your_variable
注意,不要在等號 = 和文本之間添加空格。
$ name=Christopher
$ echo $name
Christopher
那么,如果我只鍵入變量名會怎樣呢? 看下面的例子:
$ echo name
name
如果忘記帶美元符號 $,比如上面的例子,bash 就會直接返回你輸入的文本。
變量的調(diào)用可以在任何調(diào)用的位置,所以我們也可以將其放在如下代碼中:
$ echo "Hello, $name. $name is a great name. It's good to meet you."
Hello, Christopher. Christopher is a great name. It's good to meet you.
變量可以幫助我們做很多事情,上述對變量的簡單介紹應(yīng)該可以讓大家了解它是如何工作的了。
環(huán)境變量與 shell 變量
理解 source 命令的另外一個關(guān)鍵問題,就是關(guān)于變量的持久性,這是用來思考 shell 變量和環(huán)境變量之間區(qū)別的一種簡單方法。
簡單地說,如果在終端 shell 中創(chuàng)建一個變量,那么一旦退出該 shell,它就會丟失。
相比之下,環(huán)境變量會持久性的保存在操作系統(tǒng)中,而且通常都是使用大寫字母。
其中一個例子,就是用戶名,操作系統(tǒng)中其變量名稱為 $USER。 如下所示:
$ echo $USER
christopher
上面我們是介紹了一些關(guān)于環(huán)境變量和 shell 變量的區(qū)別,那么這跟 source 命令有啥關(guān)系呢?
source 和 bash
如果你使用過 Linux,可能會遇到過這兩個命令,并且認(rèn)為他們的功能是一樣的。 畢竟 source 和 bash 都可以用來執(zhí)行腳本。
source 命令會在當(dāng)前 shell 中執(zhí)行,而 bash 會創(chuàng)建一個新的 shell 會話。這并不明顯,因?yàn)闆]有顯示新窗口。
下面我們創(chuàng)建一個名為 echo.sh 的腳本,內(nèi)容如下:
#! bin/bash
echo $USER
echo $name
然后在終端中給 name 賦值:
$ name=chris
接下來,我們分別使用 bash 和 source 命令來執(zhí)行一下這個腳本,看如下結(jié)果:
$ bash echo.sh
christopher
$ source echo.sh
christopher
chris
$ . echo.sh
christopher
chris
正如上述結(jié)果,當(dāng)使用 bash 命令執(zhí)行腳本時,shell 變量 $name 并沒有被識別出來。
使用 source 命令刷新環(huán)境變量
source 還可以用于更新當(dāng)前 shell 中的環(huán)境變量,一個常見的例子是在當(dāng)前 shell 中更新 bash 配置文件。
用戶可能想要修改他們的 bash 配置文件,比如創(chuàng)建一個別名。通常,保存配置后,需要打開一個新的終端窗口才能看到更改生效。
$ source .bashrc
運(yùn)行此操作將刷新當(dāng)前 shell 中的設(shè)置,而不會強(qiáng)制您打開新的終端。
-
Linux
+關(guān)注
關(guān)注
87文章
11345瀏覽量
210395 -
命令
+關(guān)注
關(guān)注
5文章
696瀏覽量
22109 -
變量
+關(guān)注
關(guān)注
0文章
613瀏覽量
28466 -
Source
+關(guān)注
關(guān)注
0文章
17瀏覽量
9855 -
Shell
+關(guān)注
關(guān)注
1文章
366瀏覽量
23447
發(fā)布評論請先 登錄
相關(guān)推薦
評論