A maneira como você está usando é razoável.
Eu não consigo reproduzir seu problema com o bash shell que eu poderia trabalhar (GNU bash, versão 4.1.2 e GNU bash, versão 4.3.11). Veja abaixo:
Script de teste go.sh
. Você pode executá-lo com ./go.sh
depois de torná-lo executável com chmod u+x go.sh
, bem como /bin/bash go.sh
echo " ### Here we start ###" Script line 1
source my_sourced_file
echo Script line 3
casfsda # this is the line 4 of script
echo Script line 5
f "Script line #6 using the function from sourced file"
echo " ### Here we finish ###" Script line 7
Arquivo com funções que você precisa colocar no diretório atual chamado my_sourced_file
:
echo Hello word this is the 1 line of my_sourced_file
f(){ echo Hello $1 ;}
f "Gustave line number 3 of my_sourced_file"
echo linea 4 my_sourced_file
Saída (em preto o erro)
### Here we start ### Script line 1
Hello word this is the 1 line of my_sourced_file
Hello Gustave line number 3 of my_sourced_file
linea 4 my_sourced_file
Script line 3
./go.sh: line 4: casfsda: command not found
Script line 5
Hello Script line #6 using the function from sourced file ### Here we finish ### Script line 7
- Testado no bash do GNU, versão 4.3.11
- e no antigo bash do GNU, versão 4.1.2