source命令从当前shell中的文件中执行命令,主要使用source命令是刷新环境变量。source filename [options]
也可以使用. (点)代替source命令,如下所示:. filename [options]
source命令如何工作?
这个命令的语法很简单,但是理解它需要稍微深入了解一些Linux概念,
变量概述
你可以打开bash终端,并创建新的变量,变量可以看作一个占位符,可以用来将你的系统指向一个信息(字母,数字或符号)。[email ]:~$ name=Christopher
[email ]:~$ echo $name
Christopher
如果我输入变量名,会发生什么?[email ]:~$ echo name
name
变量被插入到调用的地方,我还可以将它包括在如下句子中:[email ]:~$ 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.
环境变量与shell变量的比较
简单地说,如果你在终端shell中创建一个变量,一旦退出shell,它就会丢失。
相反,环境变量在操作系统中有持久性,[email ]:~$ echo $USER
christopher
如果在Linux周围过一段时间,你遇到这些命令,并认为它们做了相同的事情,
如果在后续操作中,将要求你编写一个非常简单的脚本(我们叫它echo.sh ),如下所示:#! bin/bash
echo $USER
echo $name
在终端中执行其他操作之前,将你的名称分配给变量名。[email ]:~$ name=chris
接下来,我将向您展示在分配变量的同一终端中尝试所有3个命令时会发生什么。[email ]:~$ bash echo.sh
christopher
[email ]:~$ source echo.sh
christopher
chris
[email ]:~$.echo.sh
christopher
chris
可以看到,当你通过bash执行脚本时,无法识别你的本地变量。
使用source命令刷新环境变量
Source还可以用于更新当前shell中的环境变量,
用户需要将bash配置文件修改为创建别名,通常,保存配置后,你需要打开一个新的终端窗口,以便进行更改。[email ]:~$ source .bashrc
运行此命令将刷新当前外壳程序中的设置,而不会强制您打开新终端。