2013-11-20 11 views
17

Prendiamo piccolo esempio:Bash: usare il punto o "fonte" per chiamare un altro script: che differenza c'è?

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

. source-2.sh 

E:

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

Ora gestito:

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

Se cambierò chiamata del secondo file al primo:

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

source source-2.sh 

E avrà lo stesso effetto dell'uso di dot.

Quindi, qual è la differenza con questo metodo? Grazie.

risposta

18

Non c'è differenza.

Dal manual:

source

source filename 

A synonym for . (see Bourne Shell Builtins). 
19

L'unica differenza è in termini di portabilità. . è il comando standard POSIX per l'esecuzione di comandi da un file; source è un sinonimo più leggibile fornito da bash e alcune altre shell. bash stesso, tuttavia, non fa distinzione tra i due.

Problemi correlati