¿Cuál es la diferencia entre ejecutar un script (por ejemplo, / some / script) con source /some/scripty . /some/scripten Bash?
147
sourcey .son sinónimos 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. Usted va a leer que los dos comandos internos, sourcey ., utilizar la misma función: source_builtin.
.es el comando fuente tradicional, heredado del antiguo shell bourne.sourcees solo un bash incorporado que hace exactamente lo mismo., presumiblemente porque es más legible (un.solo puede ser difícil de detectar con una fuente pequeña). Veráshelp sourceyhelp .muestra la misma información.man bashy luego buscasource, verá quesource filename [arguments]es sinónimo de. filename [arguments]..es sinónimosourcede bash, pero no de POSIX sh, por lo que debe usarlo.si / script / sh ejecuta su script. Tenga en cuenta que bash afirma ejecutarse como POSIX sh cuando se llama como / bin / sh, pero aceptasourcesin quejarse.Este comportamiento me ha mordido, los scripts probados con bash como / bin / sh fallan cuando se ejecutan bajo cenizas, por ejemplo.
fuente
#!/bin/shembargo, cuando el shebang dice que nunca debes asumir que el shell admite nada más que las características POSIX. pubs.opengroup.org/onlinepubs/9699919799/utilities/…