-2

我有个问题。export使用命令和使用.(点)命令导出变量有什么区别?请解释清楚

4

1 回答 1

1

这有点像苹果和橘子的问题。它们不是相同的功能。

export 命令用于设置变量,因此您有两种选择:

variable=value
export variable=value

如果你想运行另一个 shell 脚本,你有几个选择:

shellScriptName.sh  (no prefix or qualifiers)
/bin/sh shellScriptName
. shellScriptName.sh

变量赋值就是这样做的,设置一个变量。导出控制您刚刚设置的变量的可见性范围(特别是,它是否被导出到子进程)。

至于 shell 脚本,前两个本质上是相同的,并且在另一个进程中运行一个 shell 脚本。在这种情况下,任何设置/导出的变量在调用 shell 中都将不可见。当你使用 . 它获取 shell 脚本,就好像它在当前 shell 脚本/进程中内联(如导入),因此来自子 shell 的变量分配在当前 shell 中是可见的。

于 2013-07-03T12:13:47.457 回答