Você pode adicionar isso como primeira linha em seu script a.sh:
[ "$sourced_a_sh" != "" ] && return || sourced_a_sh=.
Eu tenho um ninho de scripts bash que podem se originar, por exemplo a.sh fontes b.sh fontes a.sh etc ... Além de redesenhar, o que pode nem sempre ser viável, quais são as melhores práticas para evitar um loop de origem?
Uma abordagem que tenho é usar a presença de uma determinada função que indica, não para criar o script novamente. por exemplo,
a.sh:
declare -F a
if [ $? -eq 0 ]
then
return
fi
...
function a()
{
}
outra é ter alguma variável por arquivo "$ sourced_a_sh" e se definir retornar.
Eles todos parecem muito desajeitados no entanto. Existe uma maneira mais agradável?
Tags bash