用户登录到Linux系统后,系统将启动一个用户shell,我们暂且称这个shell为shell父。

在这个shell父中,可以使用shell命令或声明变量,也可以创建并运行shell脚本程序。

当使用sh或者bash运行shell脚本程序时,系统将创建一个子shell,我们暂且称为shell子。

此时,系统中将有两个shell,一个是登录时系统启动的shell父,另一个是系统为运行脚本程序创建

的shell子。当一个脚本程序运行完毕,脚本shell子将终止,返回到执行该脚本之前的shell父。

这时脚本中创建的变量或者环境变量(export的变量)是在shell子中创建的,只在shell子中有效,在shell父中是无法访问的

source(或者.)的作用是文件包含,当使用source运行脚本程序时,系统并不会创建子shell,而是将脚本中的命令放到shell父中运行,

这时脚本中创建的变量或者环境变量(export的变量)相当于是在shell父中创建的,在shell父中是可以访问的。

因此使用source执行修改后的配置文件会直接生效,不需要重启

export 的作用是为当前shell设置环境变量,这样变量在其子shell也可以访问,当然,在其父shell中还是无法访问的

普通的变量只在当前shell中可以访问,在父shell或者子shell中都无法访问

export 也是 bash 的一个内置命令。它主要是用来将父 shell 里的变量导出供子 shell 使用。

它有如下特征:

1. 用 export 导出的变量放在“导出变量列表”中,它可以被子 shell (子 shell 的子 shell 也是如此)拷贝并使用。

2. 被 export 出来的变量虽然可以被子 shell 使用,但它也只是一个拷贝,而不会影响到父 shell 中的值以及其它子 shell 中的值。

最新文章

  1. iOS开发之表视图爱上CoreData
  2. Apple Pay的快速实现
  3. JSON-LD
  4. matlab练习程序(图像马赛克)
  5. 解决PHP在IE浏览器下载文件,中文文件名乱码问题
  6. ios开发——常用经典算法OC篇&冒泡/快速
  7. Unity3D 之UGUI 面板
  8. POJ 3922 A simple stone game
  9. AE二次开发中,过滤后的图层,实现缩放至图层效果
  10. android-意图Intent
  11. redhat7 邮件服务搭建
  12. Flask jinja2 全局函数,宏
  13. Python中and(逻辑与)计算法则
  14. Html开发中document.getElementByTagName无法找到所有DOM元素的问题解决方法
  15. hdfs数据采集场景示意图
  16. GDB查看堆栈局部变量
  17. OpenStack之Neutron分配VIP提供给两台虚拟机做高可用
  18. APP加急审核
  19. 第23课 可变参数模板(4)_Optional和Lazy类的实现
  20. AI 随机梯度下降(SGD)

热门文章

  1. mongodb windows的安装方法和添加到任务管理器中、检测是否成功、增删改查命令
  2. 用juniversalchardet解决爬虫乱码问题
  3. C#连接数据库最基本操作之sql语句 DML
  4. 插件开发-滑条(slide)开发
  5. MYSQL存储过程中 使用变量 做表名
  6. ubuntu 16.04 ssh免密码连接不上
  7. es6基础(7)--函数扩展
  8. 重新配置dbconsole的步骤
  9. access oarcle
  10. sql server转oracle需要注意的几点