最熟悉的陌生人:source命令
各位小伙伴
大家好
阿拯有一个比较特别爱好
就是喜欢看看
那些我们习以为常的事情
其背后
具体有什么玄机?
譬如今天要和大家分享的
source命令
想必大家一定用过
“source .bash_profile”
这条命令一般用于
生效已经编写完毕的
然后又有人说
./.bash_profile也可以呀
但究竟可以不可以呢?
需要弄清这个问题
我们就需要知道
source命令
究竟做了什么!
“我到底在哪里?”
接下来
我们以一个简单实验
让大家发现
source与./(直接执行)的不同点
我们使用的脚本是:
如果我们使用执行执行:
而如果我们使用source运行
仔细的小伙伴应该已经发现
如果使用source运行
我们交互shell的
“工作目录“
也发生了改变!
很明显
source与普通执行
就是不太一样!
source生效于当前进程
我们来看一下source的说明
我们可以看到
source命令特别指出
其是在当前的shell环境中
执行命令内容
而如果我们直接运行脚本
脚本则会启动一个
“子进程”
来执行脚本内容
而这些内容
很多在我们的shell环境中
不会实际生效的!
修改PWD,并不能改变工作目录
有些对环境变量
了解较多的小伙伴
可能会知道
一般的shell中
会存在PWD与OLDPWD两个
环境变量
有些脑子活络的小伙伴
可能要问了
我修改PWD的值
会不会也能改变目录呢?
那这是为什么呢?
我们来看下面的内容
最后的问题
就留给各位读者了
大家可以仔细想一下
为什么修改PWD变量
不会改变工作目录呢?
这个思考就留给大家了
原文始发于微信公众号(释然IT杂谈):最熟悉的陌生人:source命令
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论