Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
561 views
in Technique[技术] by (71.8m points)

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

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?

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Answer

0 votes
by (71.8m points)

The only difference is in portability.

. is the POSIX-standard command for executing commands from a file; source is a more-readable synonym provided by Bash and some other shells. Bash itself, however, makes no distinction between the two.


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...