source命令与点命令的区别及使用
需积分: 9 48 浏览量
更新于2024-09-18
收藏 32KB DOC 举报
"source命令与“.”点命令的使用和区别"
source命令和“.”点命令在Linux和Unix系统中是等价的,主要用于在当前shell环境中执行一个脚本,而不是打开一个新的子shell来运行。这一特性使得它们在系统配置、环境变量设定等方面显得尤为有用。
1. **source命令的起源和用途**
source命令起源于CShell,而在Bourne Shell中,它的等价形式是“.”点命令。这两种方式都是为了在当前shell上下文中执行脚本,这意味着脚本中定义的环境变量、函数和设置会直接影响到当前的shell环境,而不会在执行完脚本后消失。
2. **执行方式和影响范围**
- 当你使用`source script.sh`或`./script.sh`时,两者之间的主要区别在于环境变量的持久性。如果使用`./script.sh`,脚本会在一个子shell中运行,任何环境变量的改变仅限于这个子shell,当脚本结束,这些改变不会传递回父shell。因此,如果你在脚本中export了一个变量,如`export KKK=111`,然后在脚本外部尝试`echo $KKK`,你会发现没有值。但如果使用`source script.sh`,变量`KKK`就会在当前shell中设置,之后的`echo $KKK`会显示值为111。
- `source`命令常用于重新加载用户的配置文件,如`.bashrc`,`.bash_profile`或`.profile`,以便立即应用所做的改动,而无需退出并重新登录。例如,更新了`.bashrc`文件后,你可以执行`source ~/.bashrc`来使更改生效。
3. **执行脚本的内部命令**
点命令(`.`)是shell的内部命令,这意味着它不会启动新的shell进程,而是直接在当前进程中执行脚本中的所有命令。这种方式避免了因开启新进程导致的性能开销,同时也确保了对当前环境的直接修改。
4. **在Android开发中的应用**
在Android开发中,`source build/envsetup.sh`是一个常见的操作,它设置了构建环境,允许用户执行像`mm`这样的构建命令。如果不执行此步骤,许多特定于环境的设置将无法正确工作。
5. **与export命令的区别**
`export`命令用于将变量导出到子shell,而`source`命令则是直接影响当前shell环境。这意味着,如果在脚本中使用`export`设置的变量,只有在使用`source`执行脚本时,这些变量才会在当前shell及其子shell中可用。
总结来说,`source`命令和“.”点命令是Linux和Unix shell中的重要工具,它们用于在不创建新shell实例的情况下执行脚本,这对于保持和更新当前shell环境的状态至关重要。理解和熟练使用这两个命令对于日常的系统管理和脚本编写非常有帮助。
2023-09-09 上传
2021-03-29 上传
2008-11-29 上传
2008-09-15 上传
2008-12-25 上传
2009-07-28 上传
2022-06-20 上传
2021-09-28 上传
2022-06-27 上传
JiaJianJunNeusoft
- 粉丝: 11
- 资源: 17
最新资源
- Fisher Iris Setosa数据的主成分分析及可视化- Matlab实现
- 深入理解JavaScript类与面向对象编程
- Argspect-0.0.1版本Python包发布与使用说明
- OpenNetAdmin v09.07.15 PHP项目源码下载
- 掌握Node.js: 构建高性能Web服务器与应用程序
- Matlab矢量绘图工具:polarG函数使用详解
- 实现Vue.js中PDF文件的签名显示功能
- 开源项目PSPSolver:资源约束调度问题求解器库
- 探索vwru系统:大众的虚拟现实招聘平台
- 深入理解cJSON:案例与源文件解析
- 多边形扩展算法在MATLAB中的应用与实现
- 用React类组件创建迷你待办事项列表指南
- Python库setuptools-58.5.3助力高效开发
- fmfiles工具:在MATLAB中查找丢失文件并列出错误
- 老枪二级域名系统PHP源码简易版发布
- 探索DOSGUI开源库:C/C++图形界面开发新篇章