¿Hay alguna forma de incluir otro script de shell en un script de shell para poder acceder a sus funciones?
Al igual que en PHP, puede usar la include
directiva con otros archivos PHP para ejecutar las funciones que están contenidas simplemente llamando al nombre de la función.
source
comando, la pregunta en sí misma es cómo identificar la ubicación de unsource
archivo.Respuestas:
Simplemente ponga dentro de su secuencia de comandos:
O
fuente
C
lenguaje. Aquí la fuente está ejecutando el script secundario en el script principal. ¿Qué pasa si solo quiero llamar a una función en particular desde el script secundario?. script.sh
con./script.sh
. Perdí horas tratando de averiguar qué está pasandoLas respuestas anteriores son correctas, pero si ejecuta el script en otra carpeta, habrá algún problema.
Por ejemplo,
a.sh
yb.sh
están en la misma carpeta, a incluir b con. ./b.sh
para incluir.Cuando se ejecuta la escritura fuera de la carpeta, por ejemplo, con
xx/xx/xx/a.sh
, archivob.sh
no encontrado:./b.sh: No such file or directory
.yo suelo
fuente
Sí, use la fuente o la forma corta que es simplemente
.
:fuente
.
versión funcionash
tan bien como Bash. La "fuente" solo funciona en Bash.En mi situación, para incluir
color.sh
desde el mismo directorioinit.sh
, tuve que hacer algo de la siguiente manera.No estoy seguro de por qué
./
y nocolor.sh
directamente. El contenido decolor.sh
es el siguiente.El uso de
File color.sh
no produce error, pero el color no se muestra. He probado estoUbuntu 18.04
y laBash
versión es:GNU bash, version 4.4.19(1)-release (x86_64-pc-linux-gnu)
fuente
init.sh
está (coinciden si lo lanzó./init.sh
en primer lugar).La sintaxis es
source <file-name>
ex.
source config.sh
script - config.sh
script de llamada -
Puede aprender a incluir un script bash en otro script bash aquí .
fuente