打开shell,出现一个黑色的窗口,即是小黑,它是shell进程。
小黑是个精灵,是个活生生的精灵。你可以给小黑打个招呼:echo Hello,小黑给你一个回复:Hello。如下所示:
[root@localhost ~]# echo Hello
[root@localhost ~]# Hello
最神奇的地方在于:小黑还可以诞生出一个小小黑,你可以执行:sh xxx.sh,这个时候就会诞生出一个小小黑。至于它是不是黑的,不好说,但是可以肯定的说,它是小黑诞生的。准确的叫法是:子进程。
只要在小黑面前执行sh xxx.sh命令或者./xxx.sh,小黑就会诞生出一个小小黑,既然这么容易分身,那么就有人开始担心了:我在小黑那里存放的东西,小小黑是否知道呢?
确切的说,在小黑那里存放的东西,小小黑是不知道的。用户存放的东西,叫用户变量,只在当前小黑中可见,小小黑是看不见的。要想让小小黑也能看到用户存放的东西,必须设置为导出,也就是export。天知道小黑能诞生出多少个小小黑呢,所以凡是用export设置的变量都称为环境变量。
小黑的东西,小小黑是看不到的,那问题来了,小小黑的东西,小黑能看到吗?答案是:不能的。那如果有人想让小小黑给小黑传话,怎么破?不能破啊,干嘛非得多此一举呢,直接跟小黑对话吧,越过小小黑,用source的方式,也就是source xxx.sh的方式,这个时候就不会再平白无故冒出个小小黑了。
export的字面意思是“导出、出口”,将shell进程的变量“导出”到子shell进程或者兄弟shell里面。source的字面意思是“起源、根源”,用source执行shell脚本,不会启动子shell进程,而是直接在当前shell进程中运行。
评论专区
评论加载中...登录后即可发表评论