Contents

Linux中source命令简介

1. 概述

source命令可用于读取文件并将其内容视为要执行的一组命令。

在本快速教程中,我们将探索 Linux source 命令如何在这种情况下帮助我们执行命令并刷新环境变量

2. 语法

让我们看一下基本语法:

$ source FILENAME [arguments]
$ . FILENAME [arguments]

正如我们在上面看到的,点或句点字符 ‘. ’ 是source关键字的同义词。因此,两者之间的输出没有差异。

要查看 source命令的运行情况,让我们使用它:

$ cat test.txt
printf "Today's date is: "
date
echo
cal -3
$ source test.txt
Today's date is: Sat May 23 07:26:50 IST 2020
                            2020
       April                  May                   June
Su Mo Tu We Th Fr Sa  Su Mo Tu We Th Fr Sa  Su Mo Tu We Th Fr Sa
          1  2  3  4                  1  2      1  2  3  4  5  6
 5  6  7  8  9 10 11   3  4  5  6  7  8  9   7  8  9 10 11 12 13
12 13 14 15 16 17 18  10 11 12 13 14 15 16  14 15 16 17 18 19 20
19 20 21 22 23 24 25  17 18 19 20 21 22 23  21 22 23 24 25 26 27
26 27 28 29 30        24 25 26 27 28 29 30  28 29 30
                      31

在这里,我们首先创建了文件text.txt,其中包含在控制台上显示日期和日历的命令。之后,我们运行source命令并将我们的文件名作为参数传递。

最后,我们能够执行所有这些命令并在控制台上看到输出。

3. 用例

当我们使用source命令运行脚本时,所有命令都在同一个 shell 中执行。因此,在脚本中已赋值的任何变量在执行完成后将保留其值。

这是将环境变量广泛用于当前终端会话的主要原因。

4. sourcebash命令的区别

有时,sourcebash命令之间存在混淆,因为两者都可以在脚本中执行命令。这里的主要区别在于source命令在同一个 shell 中创建变量,而bash命令创建一个新的 shell**然后执行其中的所有脚本命令。

因此,我们不能使用bash命令来设置环境变量,因为一旦bash shell 退出,这些变量就会被销毁。