运行‘bash’与执行`source ./bashrc`的区别及相关疑问
Bash中
source命令与启动新bash进程的区别 问题列表
source OOOO的具体功能是什么?- 运行
bash与执行source ./bashrc的结果是否一致?
问题解答
source命令的具体功能source是bash的内置命令,核心作用是在当前正在运行的shell进程中,直接执行指定脚本里的所有命令,不会启动新的子进程。
比如你修改了~/.bashrc里的别名或环境变量,执行source ~/.bashrc后,这些修改会立刻在当前shell窗口生效——因为脚本里的配置命令是直接在当前shell进程中运行的,相当于把脚本内容“导入”到了当前会话里。
- 运行
bash和source ./bashrc的结果完全不一致
两者的核心差异体现在进程环境和作用范围上:
- 执行
bash会启动一个全新的bash子进程,这个子进程会加载自己的初始化配置(比如默认读取~/.bashrc),但它和原来的父shell完全独立。在这个子shell里做的任何环境变更(比如设置新变量、添加别名),退出子shell后都不会影响父shell的环境。 - 执行
source ./bashrc是在当前shell进程内直接加载配置,所有配置变更都会直接作用于当前会话,不需要新开进程。修改后的环境会一直保留到你关闭这个shell窗口,且不会产生独立的子进程。
简单总结:source是给当前shell“更新配置”,bash是开启一个全新的独立shell会话。
内容的提问来源于stack exchange,提问作者Chung_es
相关产品推荐
相关产品推荐

