这是什么意思?$.test.sh

这是什么意思?$.test.sh

我在一些 shell 源代码中看到了类似“ ”的命令. test.sh,但我不知道它有什么用。所以我试了一下。然后,该.sh文件被执行了。

但是,我不明白“ .”是如何工作的。你能解释一下吗?

答案1

该命令(在 中.有一个同义词,但在大多数其他 Bourne shell 衍生产品中没有)将命名的文件作为当前 shell 的一部分读取。sourcebash

考虑:

$ cat test.sh
export ENVVAR="Welcome"
echo $ENVVAR
$ echo $ENVVAR

$ test.sh
Welcome
$ echo $ENVVAR

$ . test.sh
Welcome
$ echo $ENVVAR
Welcome
$

注意:欺骗 1:我假设test.sh是可执行的。欺骗 2:我假设test.sh位于 上的目录中$PATH

这意味着在 中设置的环境变量test.sh会影响当前 shell。相比之下,执行没有 的命令.不会影响当前 shell 的环境。例如,在读取和相关文件.时使用此机制。.profile

请注意,在 PATH 上.查找简单名称(例如test.sh其中没有斜杠),但文件只需可读;不必是可执行的。

答案2

这只是这个意思的简写,仅此而已:

source test.sh

http://ss64.com/bash/period.html

相关内容