1 | source
|
2 | ===
|
3 |
|
4 | 在当前Shell环境中从指定文件读取和执行命令。
|
5 |
|
6 | ### 概要
|
7 |
|
8 | source filename [arguments]
|
9 |
|
10 | ### 主要用途
|
11 |
|
12 | - 执行文件并从文件中加载变量及函数到执行环境
|
13 |
|
14 | #### 参数
|
15 |
|
16 | filename:要执行的文件
|
17 |
|
18 | arguments(可选):传递给文件的参数
|
19 |
|
20 | #### 返回值
|
21 |
|
22 | source返回文件最后一个命令的返回值,如果文件不能读取则会失败
|
23 |
|
24 | #### 错误用法
|
25 |
|
26 | - 文件在`$PATH`中找不到。
|
27 |
|
28 | - 文件未给出。
|
29 |
|
30 | ### 例子
|
31 |
|
32 | - 在一些工具的执行过程中,会把环境变量设置以"export XXX=XXXXXX"或"declare XXX=XXXXXX"的形式导出到
|
33 | 一个文件中,然后用source加载该文件内容到执行环境中。
|
34 |
|
35 | - 读取和执行/root/.bash_profile文件。
|
36 |
|
37 | ```shell
|
38 | [root@localhost ~]# source ~/.bash_profile
|
39 | ```
|
40 |
|
41 | ### Q&A
|
42 |
|
43 | Q:`source`和`sh`在执行文件方面有什么区别?
|
44 |
|
45 | A:`sh`的执行是在子shell中,`source`会使得被执行文件的变量及函数加载进当前终端环境内(除去函数内local修饰的变量等);建议您参考`export`命令的 **知识点** 部分
|
46 |
|
47 |
|
48 | ### 注意
|
49 |
|
50 | 1. 该命令是bash内建命令,相关的帮助信息请查看 `help` 命令。
|
51 |
|
52 |
|
53 |
|
54 |
|