$ whatis source
source: nothing appropriate.
$ man source
No manual entry for source
$ source
bash: source: filename argument required
source: usage: source filename [arguments]
Existe y es ejecutable. ¿Por qué no hay documentación al respecto en Ubuntu? ¿Qué hace? ¿Cómo puedo instalar documentación al respecto?
bash
shell
documentation
Andrea Ambu
fuente
fuente

$ type sourcesource is a shell built-in$ whatis sourcesource (1) - bash built-in commands, see bash(1). Además,man sourceme lleva a lasBASH_BUILTINS(1)páginas del manual. Esto está en Fedora por cierto, no tengo idea de por qué esos paquetes de Debian no están (o están mal) documentados.Respuestas:
sourcees un comando incorporado de bash shell que ejecuta el contenido del archivo pasado como argumento, en el shell actual . Tiene un sinónimo en.(punto).fuente
sourceun comando específico de bash o también lo tienen otros shells? (Estoy pidiendo que las etiquetas sean correctas en la pregunta ...)sourceestuvo presente en el caparazón de Bourne y, por lo tanto, probablemente presente en todos sus descendientes. en.wikipedia.org/wiki/Bourne_shell . Sé que no todos los shells tienen elsourcecomando, menos seguro de qué shells lo contienen.sourceno estaba presente en el shell Bourne, es una extensión de GNU que llegó mucho más tarde. La sintaxis original y aún portátil (POSIX) es utilizar el comando "punto", es decir, en su.lugar. Personalmente, nunca usosourcedado que es más largo para escribir y no tiene valor agregado. Supongo que su propósito principal es hacer que los scripts sean más legibles para los novatos.sourceno solo es más descriptivo, sino que parece algo más que un error tipográfico. He tenido personas que omiten el punto / punto cuando envío comandos técnicos por correo electrónico.sourceen un "archivo de configuración" que contiene principalmente asignaciones variables. Las asignaciones variables luego controlan las cosas que hace el resto del script. Por supuesto, un buen script establecerá las variables en valores predeterminados sensibles antes desource, o al menos buscará valores válidos.¡Ten cuidado!
./y nosourceson exactamente lo mismo ../scriptejecuta el script como un archivo ejecutable, inicia un nuevo shell para ejecutarlosource scriptlee y ejecuta comandos del nombre del archivo en el entorno actual del shellNota:
./scriptno lo es. script, pero. script==source scripthttps://askubuntu.com/questions/182012/is-there-a-difference-between-and-source-in-bash-after-all?lq=1
fuente
./ == source == .Es útil conocer el comando 'tipo':
cada vez que algo es un caparazón incorporado, es hora de hacerlo
man bash.fuente
man)help {builtin-name}, es decirhelp source.helpno funciona en todas partes (al menos en zsh).typehace.. (un punto) es un comando incorporado de bash shell que ejecuta los comandos de un archivo pasado como argumento, en el shell actual. 'fuente' es sinónimo de '.'.
Desde la página de manual de Bash:
fuente
'fuente' es la versión larga de '.' mando. En el indicador bash se puede hacer:
para recargar su configuración de bash (¿cambiado?) para bash actual en ejecución.
La versión corta sería:
La página del manual:
fuente
sourceEl comando ejecuta el script proporcionado (el permiso ejecutable no es obligatorio ) en el entorno actual del shell, mientras que./ejecuta el script ejecutable proporcionado en un nuevo shell.sourcecomando tiene un sinónimo. filename.Para que quede más claro, eche un vistazo al siguiente script, que establece el alias.
make_alias
Ahora tenemos dos opciones para ejecutar este script. Pero con solo una opción, el alias deseado para el shell actual se puede crear entre estas dos opciones.
Opción 1:
./make_aliasHaga el script ejecutable primero.
Ejecutar
Verificar
Salida
Whoops! Alias se ha ido con el nuevo caparazón.
Vayamos con la segunda opción.
Opcion 2:
source make_aliasEjecutar
o
Verificar
Salida
Sí, Alias está listo.
fuente
En caso de duda, lo mejor es usar el
infocomando:fuente
Escriba el comando "fuente de ayuda" en su shell.
Obtendrá una salida como esta:
fuente
Del Proyecto de documentación de Linux, Advanced Bash Scripting Guide,
Capítulo 15 - Comandos internos y Builtins :
Entonces, para aquellos familiarizados con el lenguaje de programación C, el abastecimiento de un archivo tiene un efecto similar al de la
#includedirectiva.Tenga en cuenta también que puede pasar argumentos posicionales al archivo de origen, como:
fuente
sourcepodría llevar argumentos o usoreturn.Cabe señalar que a pesar de ser un comando impresionante, ni
sourcetampoco su forma abreviada de.que la fuente de más de un archivo, significadoo
será no trabajar.
Podemos retroceder usando
forbucles, pero emitiría el ejecutable muchas veces, creando múltiples comandos o emitiéndolo.Conclusión:
sourceno toma múltiples archivos como entrada. El argumento tiene que ser uno.Lo que apesta en mi humilde opinión.
fuente
Con la fuente, puede pasar variables o funciones de otro archivo a su script y usarlas sin tener que volver a escribirlas.
FI:
Salud
fuente