Ao construir um conjunto de scripts de shell interdependentes, é necessário usar o equivalente a uma “proteção de inclusão” C / C ++ para garantir que os scripts comuns não sejam originados mais de uma vez. A solução é bem simples.
Cole isso perto do topo do seu script bash:
[ -n "$LIB_NAME" ] && return || readonly LIB_NAME=1
Use algum nome exclusivo em vez de LIB_NAME</code>. For example:
bash-3.2$ cat my_lib.sh
[ -n "$_MY_LIB" ] && return || readonly _MY_LIB=1
echo "HELLO!"
bash-3.2$ source my_lib.sh
HELLO!
bash-3.2$ source my_lib.sh
bash-3.2$