linux中的source命令

source命令是bash shell的一个内置命令,也称为点命令。它用于在当前shell环境中执行脚本,而不是在一个新的子进程中执行。source常用于重新加载配置文件,如.bash_profile,以应用最新的更改,而无需注销和重新登录。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

source命令(从 C Shell 而来)是bash shell的内置命令。点命令,就是一个点符号,(从Bourne Shell而来)是source的另一名称。这两个命令都以一个脚本为参数,该脚本将作为当前shell的环境执行,即不会启动一个新的子进程。所有在脚 本中设置的变量将成为当前Shell的一部分。同样的,当前脚本中设置的变量也将作为脚本的环境,source(或点)命令通常用于重新执行刚修改的初始 化文件,如 .bash_profile 和 .profile 等等。例如,如果在登录后对 .bash_profile 中的 EDITER 和 TERM 变量做了修改,则可以用source命令重新执行 .bash_profile 中的命令而不用注销并重新登录。象 .bash_profile 或其它类似的Shell脚本这样,文件无需可执行权限即可用source或点命令执行。
### Linux 中 `source` 命令的用法、示例及其功能 #### 1. 定义与作用 `source` 是一个内置 Shell 命令,主要用于在当前 Shell 环境中执行脚本文件的内容。它不会创建新的子进程来运行脚本,而是在当前环境中逐行解释并执行脚本中的命令[^3]。 这种特性使得 `source` 特别适合用来加载配置文件或者更新当前 Shell 的环境变量。 --- #### 2. 基本语法 ```bash source 文件路径 ``` 或者使用点号作为替代形式: ```bash . 文件路径 ``` 这的 `文件路径` 可以是绝对路径或相对路径。如果提供的是相对路径,则会基于当前工作目录解析文件的位置。 --- #### 3. 功能特点 - **不创建新 Shell**:与其他执行方式不同(如 `sh script.sh` 或 `./script.sh`),`source` 不会在独立的新进程中运行脚本,而是直接在调用它的 Shell 环境内处理脚本内容。 - **影响当前环境**:由于脚本是在现有 Shell 内部被执行,因此任何由脚本引发的变化——例如修改环境变量、定义函数等——都会保留下来并对后续的操作生效[^3]。 --- #### 4. 示例说明 ##### (1) 加载环境变量配置文件 假设有一个名为 `.env` 的文件,其中包含了若干导出的环境变量声明: ```bash # .env 文件内容 export MY_VAR="This is my variable" export ANOTHER_VAR=123 ``` 可以通过以下命令将其引入到当前会话中: ```bash source ./.env ``` 此时再次查询这些变量应能获取对应值: ```bash echo $MY_VAR # 输出: This is my variable echo $ANOTHER_VAR # 输出: 123 ``` ##### (2) 应用于初始化脚本 许多 Linux 发行版都提供了特定的初始化脚本供用户定制自己的登录体验。例如 Bash 用户通常编辑 `~/.bashrc` 文件来自定义提示符样式或其他交互细节。为了使更改立即生效而不是注销后再重新登录,可以这样操作: ```bash source ~/.bashrc ``` 这将重读该文件并将所有的设定应用到现有的终端实例之上。 ##### (3) 测试局部变化的影响 有时我们可能想在一个安全可控的方式下试验某些设置的效果而不永久改变全局状态。这时就可以写一个小片段放到临时文件并通过 sourcing 来观察后果。比如测试不同的 PATH 配置是否会影响程序寻址顺序等等。 --- #### 5. 注意事项 - 如果试图 sourced 的是一个不具备可读权限的文件,将会抛出错误信息提醒无权访问。 - 当前仅限于支持 POSIX 标准兼容性的 shell 支持此关键字;对于非标准外壳可能会有不同的实现甚至完全缺失此类机制[^3]。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值