以“。”和“。/”开头的shell命令有什么区别?

以“。”和“。/”开头的shell命令有什么区别?

在 Linux shell 中,我看到过以“./”开头的命令,例如

$ ./example

但我也看到了类似的命令,如 $ . example.sh

我的问题是它们是否具有相同的功能?

答案1

./example.shexample.sh将在当前目录中执行。

. example.sh将要来源 example.sh

答案2

尽管它们看上去相似但两个命令并不相关。

./example

将在当前文件夹中执行二进制或可执行 shell 脚本。如果是 shell 脚本,它将在子 shell 中执行。


. example

等同于

source example

这将“获取”文件,即在当前的shell。这意味着如果该文件中有变量或函数声明,它们将在命令之后在当前 shell 中可用source。变量操作或其他任何事情也将在当前 shell 中发生。这就像您在终端中手动逐行输入文件内容一样。

相关内容