Existe uma maneira de incluir outro script de shell em um script de shell para poder acessar suas funções?
Assim como no PHP, você pode usar a include
diretiva com outros arquivos PHP para executar as funções contidas nele, simplesmente chamando o nome da função.
source
comando, a questão em si é como identificar a localização de umsource
arquivo.Respostas:
Simplesmente coloque dentro do seu script:
Ou
fonte
C
linguagem. Aqui, a fonte está executando o script filho no script principal. E se eu quiser apenas chamar uma função específica do script filho?. script.sh
com./script.sh
. Perdi horas tentando descobrir o que está acontecendoAs respostas acima estão corretas, mas se executar o script em outra pasta, haverá algum problema.
Por exemplo, o
a.sh
eb.sh
estão na mesma pasta, a inclui b com. ./b.sh
a incluir.Ao executar o script fora da pasta, por exemplo com
xx/xx/xx/a.sh
, o arquivob.sh
não será encontrado:./b.sh: No such file or directory
.eu uso
fonte
Sim, use a fonte ou a forma abreviada que é apenas
.
:fonte
.
versão funcionash
tão bem quanto o Bash. A "fonte" só funciona no Bash.Na minha situação, para incluir
color.sh
do mesmo diretório eminit.sh
, tive que fazer algo da seguinte maneira.Não sei por que o
./
e nãocolor.sh
diretamente. O conteúdo decolor.sh
é o seguinte.Utilizar
File color.sh
não dá erro, mas a cor não é exibida. Eu testei isso emUbuntu 18.04
e aBash
versão é:GNU bash, version 4.4.19(1)-release (x86_64-pc-linux-gnu)
fonte
init.sh
está (eles coincidem se você o lançou./init.sh
em primeiro lugar).Sintaxe é
source <file-name>
ex.
source config.sh
script - config.sh
script de chamada -
Você pode aprender a incluir um script bash em outro script bash aqui .
fonte