92

让我们举个小例子:

$ cat source.sh
#!/bin/bash
echo "I'm file source-1"

. source-2.sh

和:

$ cat source-2.sh
#!/bin/bash
echo "I'm file source-2"

现在运行:

$ ./source.sh
I'm file source-1
I'm file source-2

如果我首先更改第二个文件的调用:

$ cat source.sh
#!/bin/bash
echo "I'm file source-1"

source source-2.sh

它将具有与使用相同的效果dot

这些方法有什么区别?

4

2 回答 2

98

唯一的区别在于便携性。

.是用于从文件执行命令的 POSIX 标准命令;source是 Bash 和其他一些 shell 提供的更易读的同义词。然而,Bash 本身并没有区分这两者。

于 2013-11-20T13:29:18.250 回答
92

没有区别。

手册

source

source filename

A synonym for . (see Bourne Shell Builtins).
于 2013-11-20T11:14:00.300 回答