Using dot or "source" while calling another script - what is the difference?

bash, dot-source

Solution

There is no difference.

From the manual:

`source`

source filename

A synonym for . (see Bourne Shell Builtins).

Problem

Let's take a little example: ``` $ cat source.sh #!/bin/bash echo "I'm file source-1" . source-2.sh ``` And: ``` $ cat source-2.sh #!/bin/bash echo "I'm file source-2" ``` Now run: ``` $ ./source.sh I'm file source-1 I'm file source-2 ``` If I'll change the call of the second file in first: ``` $ cat source.sh #!/bin/bash echo "I'm file source-1" source source-2.sh ``` It will have the same effect as using `dot`. What is difference between these methods?

Original source