source
命令在类 Unix 操作系统中用于执行一个脚本文件,同时将脚本的执行结果作用于当前的 shell 环境。具体来说,source
命令的主要作用如下:
-
执行脚本:
source
命令会读取指定的脚本文件,并按照文件中的命令逐行执行。 -
影响当前环境:与直接运行脚本(例如使用
./script.sh
)不同,source
命令执行脚本时,脚本中的命令会直接影响当前的 shell 环境。这意味着,如果在脚本中设置了环境变量、定义了函数或别名,这些设置会立即在当前的 shell 会话中生效。
通俗的来说,直接运行脚本,它的运行结果不会影响当前的shell,他会在新的子shell相当于一个新进程里面执行 -
不需要新进程:当使用
source
命令执行脚本时,脚本在当前的 shell 进程中运行,而不是在一个新的子进程中。这意味着脚本中的更改(如环境变量设置)会保留在当前 shell
使用 source
命令执行脚本:
- 当前环境:脚本在当前 shell 环境中执行。这意味着脚本中对环境变量、别名、函数等的任何更改都会直接影响当前的 shell 会话。
- 无新进程:脚本不是在一个新的子 shell 中运行,而是在当前 shell 进程中运行。因此,脚本执行完成后,所做的更改仍然有效。
- 示例:
bash
source script.sh
直接运行脚本(例如使用 ./script.sh
):
- 新环境:脚本在一个新的子 shell 中执行。脚本中对环境变量、别名、函数等的更改仅在该子 shell 中有效,不会影响父 shell(即执行脚本的原始 shell)。
- 新进程:运行脚本相当于启动了一个新的进程。当脚本执行完成后,这个子 shell 和其环境都会消失,所做的更改不会保留。
- 示例:
bash
./script.sh
假如 运行的脚本文件和设置环境变量有关 另一篇文章可以和它联系起来 为什么要使用source
linux和windows的环境变量区别https://blog.csdn.net/2301_79211027/article/details/141475161