Eu tenho um pequeno programa que contém a seguinte estrutura de pastas:
- main.sh
- lib/
- clean.sh
- get.sh
- index.sh
- test.sh
Cada arquivo contém uma única função na qual eu uso main.sh
.
main.sh
:
source lib/*
get_products
clean_products
make_index
test_index
Acima, as duas primeiras funções funcionam, mas as duas seguintes não.
No entanto, se eu substituir source lib/*
por:
source lib/get.sh
source lib/clean.sh
source lib/index.sh
source lib/test.sh
Tudo funciona como esperado.
Alguém sabe por source lib/*
que não funciona como o esperado?
/etc/bashrc
como ele usa umfor
loop para lidar/etc/profile.d/*.sh
. Se você confia no conteúdo,lib/
ele pode ser reduzido a uma linha:for i in lib/*.sh; do . "$i"; done