Aşağıdaki klasör yapısını içeren küçük bir program var:
- main.sh
- lib/
- clean.sh
- get.sh
- index.sh
- test.sh
Her dosyada kullandığım tek bir işlev var main.sh
.
main.sh
:
source lib/*
get_products
clean_products
make_index
test_index
Yukarıda ilk iki işlev çalışır, ancak ikincisi çalışmaz.
Ancak ben yerine source lib/*
:
source lib/get.sh
source lib/clean.sh
source lib/index.sh
source lib/test.sh
Her şey beklendiği gibi çalışıyor.
Neden source lib/*
beklendiği gibi çalışmadığını bilen var mı?
/etc/bashrc
için nasıl birfor
döngü kullandığına bakın/etc/profile.d/*.sh
. Eğer içeriğine güvenirseniz,lib/
bir astar için azaltılabilir:for i in lib/*.sh; do . "$i"; done