¿Cuál es la diferencia entre "fuente" y "."?

136

¿Cuál es la diferencia entre ejecutar un script (por ejemplo, / some / script) con source /some/script y . /some/script en Bash?

    
pregunta binW 09.02.2011 - 18:18

2 respuestas

123

source y . en Bash .

Para cualquiera que quiera verificar que los comandos son simplemente sinónimos y nada más, mire el código fuente , digamos para la versión 4.3, y examine el archivo builtins/source.def . Leerá que ambos comandos incorporados, source y . , use la misma función: source_builtin .

    
respondido por el user8290 09.02.2011 - 18:26
41

. es sinónimo de source en bash, pero no en POSIX sh, por lo que debe usar . si su script está ejecutado por / bin / sh. Tenga en cuenta que bash afirma que se ejecuta como POSIX sh cuando se llama como / bin / sh, pero acepta source sin reclamar.

Este comportamiento me ha mordido, los scripts probados con bash como / bin / sh fallan cuando se ejecutan bajo cenizas, por ejemplo.

    
respondido por el jjg 09.02.2011 - 21:42

Lea otras preguntas en las etiquetas