相关疑难解决方法(0)

“。”之间有区别吗?毕竟,bash 中的“源”?

我正在寻找“。”之间的区别。和“源”内置命令和一些源(例如,在讨论中,以及bash 手册页)表明它们是相同的。

但是,由于环境变量的问题,我进行了测试。我创建了一个testenv.sh包含以下内容的文件:

#!/bin/bash
echo $MY_VAR
Run Code Online (Sandbox Code Playgroud)

在命令提示符下,我执行了以下操作:

> chmod +x testenv.sh
> MY_VAR=12345
> ./testenv.sh

> source testenv.sh
12345
> MY_VAR=12345 ./testenv.sh
12345
Run Code Online (Sandbox Code Playgroud)

[注意第一种形式返回一个空字符串]

所以,这个小实验表明,有毕竟有差别,其中的“源”命令,孩子的环境继承所有从父之一,这里的变量“” 它不是。

我是否遗漏了什么,或者这是bash的未记录/不推荐使用的功能?

[GNU bash,版本 4.1.5(1)-release (x86_64-pc-linux-gnu)]

bash scripts environment-variables environment

42
推荐指数
2
解决办法
5万
查看次数