Mam mały program, który zawiera następującą strukturę folderów:
- main.sh
- lib/
- clean.sh
- get.sh
- index.sh
- test.sh
Każdy plik zawiera jedną funkcję, z której korzystam main.sh
.
main.sh
:
source lib/*
get_products
clean_products
make_index
test_index
Powyżej dwie pierwsze funkcje działają, ale dwie pozostałe nie.
Jednak jeśli zastąpię source lib/*
:
source lib/get.sh
source lib/clean.sh
source lib/index.sh
source lib/test.sh
Wszystko działa zgodnie z oczekiwaniami.
Czy ktoś wie, dlaczego source lib/*
nie działa zgodnie z oczekiwaniami?
/etc/bashrc
jak używafor
pętli do radzenia sobie/etc/profile.d/*.sh
. Jeśli ufasz, zawartośćlib/
można sprowadzić do jednej linijki:for i in lib/*.sh; do . "$i"; done