
source命令与点命令的区别及使用
下载需积分: 9 | 32KB |
更新于2024-09-18
| 12 浏览量 | 举报
收藏
"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环境的状态至关重要。理解和熟练使用这两个命令对于日常的系统管理和脚本编写非常有帮助。
相关推荐










JiaJianJunNeusoft
- 粉丝: 11
最新资源
- Mail PassView 1.50:邮件账户密码恢复工具
- 实现无刷新交互的PHP xajax Blog程序源码
- Java连接MySQL最新驱动下载:mysql-connector-java-5.1.7
- 日文环境下代码行数统计工具的使用与特性
- 网站站内搜索引擎生成工具
- Mania1.2正式版发布:音乐游戏模拟新体验
- 全面人力资源管理系统代码实现与解析
- 计算机硬件维护教程:课件学习资源
- 驱动人生2008卡饭版:专业电脑驱动备份解决方案
- C#编程中使用SharpZipLib压缩类的方法与应用
- C#与C++ DLL互操作:界面效率提升之道
- ASP实现长文件分页,提高浏览效率
- 批量制作含水印证卡的软件新品发布
- 企业级即时通讯系统:服务端与客户端实现
- 动态鼠标使用与安装教程介绍
- 历年软考系统分析师&项目管理师试题分析
- 2008年擎泰SK6281量产工具使用教程
- C#实现个人电子通讯录:基于Access数据库管理
- JavaScript经典方法精粹:掌握107个核心技巧
- 计算机硬件维护教案与练习资源分享
- 掌握CSS与图片处理的网页制作教程
- PHP通过飞信接口实现免费短信发送教程
- C#开发的图书管理系统示例
- VS2005 C++实现的定时关机程序开发指南