我们举一些例子:
$ cat source.sh
#!/bin/bash
echo "I'm file source-1"
. source-2.sh
Run Code Online (Sandbox Code Playgroud)
和:
$ cat source-2.sh
#!/bin/bash
echo "I'm file source-2"
Run Code Online (Sandbox Code Playgroud)
现在运行:
$ ./source.sh
I'm file source-1
I'm file source-2
Run Code Online (Sandbox Code Playgroud)
如果我先改变第二个文件的调用:
$ cat source.sh
#!/bin/bash
echo "I'm file source-1"
source source-2.sh
Run Code Online (Sandbox Code Playgroud)
它会产生与使用相同的影响dot.
那么 - 这种方法有什么区别?谢谢.
che*_*ner 50
唯一的区别在于便携性..是用于从文件执行命令的POSIX标准命令; source是一个更易读的同义词,由bash一些其他shell提供.bash然而,它本身并没有区分这两者.
dev*_*ull 48
没有区别.
从手册:
sourceRun Code Online (Sandbox Code Playgroud)source filename A synonym for . (see Bourne Shell Builtins).