最熟悉的陌生人:source命令

admin 2023年3月13日09:06:35评论23 views字数 708阅读2分21秒阅读模式

最熟悉的陌生人:source命令

 

各位小伙伴

大家好

 


 

阿拯有一个比较特别爱好

最熟悉的陌生人:source命令

 

就是喜欢看看

那些我们习以为常的事情

其背后

具体有什么玄机?

 

最熟悉的陌生人:source命令

 

譬如今天要和大家分享的

source命令

想必大家一定用过

“source .bash_profile”

 

最熟悉的陌生人:source命令

 

这条命令一般用于

生效已经编写完毕的

环境变量

 

然后又有人说

./.bash_profile也可以呀

但究竟可以不可以呢?

需要弄清这个问题

我们就需要知道

source命令

究竟做了什么!

 

最熟悉的陌生人:source命令

 

 


“我到底在哪里?”

 

接下来

我们以一个简单实验

让大家发现

source与./(直接执行)的不同点

我们使用的脚本是:

 

最熟悉的陌生人:source命令

 

如果我们使用执行执行:

 

最熟悉的陌生人:source命令

 

而如果我们使用source运行

 

最熟悉的陌生人:source命令

 

仔细的小伙伴应该已经发现

如果使用source运行

我们交互shell的

“工作目录“

也发生了改变!

 

很明显

source与普通执行

就是不太一样!

 

 

source生效于当前进程

 

我们来看一下source的说明

 

最熟悉的陌生人:source命令

 

我们可以看到

source命令特别指出

其是在当前的shell环境中

执行命令内容

 

而如果我们直接运行脚本

脚本则会启动一个

“子进程”

最熟悉的陌生人:source命令

来执行脚本内容

而这些内容

很多在我们的shell环境中

不会实际生效的!

 

 

修改PWD,并不能改变工作目录

 

有些对环境变量

了解较多的小伙伴

可能会知道

最熟悉的陌生人:source命令

 

一般的shell中

会存在PWD与OLDPWD两个

环境变量

 

最熟悉的陌生人:source命令

 

有些脑子活络的小伙伴

可能要问了

最熟悉的陌生人:source命令

我修改PWD的值

会不会也能改变目录呢?

 

最熟悉的陌生人:source命令

 

那这是为什么呢?

 

我们来看下面的内容

最熟悉的陌生人:source命令

 

最后的问题

就留给各位读者了

大家可以仔细想一下

为什么修改PWD变量

不会改变工作目录呢?

 

这个思考就留给大家了

 

最熟悉的陌生人:source命令

最熟悉的陌生人:source命令

最熟悉的陌生人:source命令

最熟悉的陌生人:source命令

原文始发于微信公众号(释然IT杂谈):最熟悉的陌生人:source命令

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2023年3月13日09:06:35
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   最熟悉的陌生人:source命令http://cn-sec.com/archives/1228337.html

发表评论

匿名网友 填写信息