Ho un piccolo programma che contiene la seguente struttura di cartelle:
- main.sh
- lib/
- clean.sh
- get.sh
- index.sh
- test.sh
Ogni file contiene una singola funzione in cui utilizzo main.sh.
main.sh:
source lib/*
get_products
clean_products
make_index
test_index
In quanto sopra le prime due funzioni funzionano ma le seconde due no.
Eppure se lo sostituisco source lib/*con:
source lib/get.sh
source lib/clean.sh
source lib/index.sh
source lib/test.sh
Tutto funziona come previsto.
Qualcuno sa perché source lib/*non funziona come previsto?
/etc/bashrccome usa unforciclo per gestire/etc/profile.d/*.sh. Se ritieni che il suo contenutolib/possa essere ridotto a una riga:for i in lib/*.sh; do . "$i"; done