У меня есть небольшая программа, которая содержит следующую структуру папок:
- main.sh
- lib/
- clean.sh
- get.sh
- index.sh
- test.sh
Каждый файл содержит одну функцию, которую я использую в main.sh
.
main.sh
:
source lib/*
get_products
clean_products
make_index
test_index
Выше первые две функции работают, но вторые две не работают.
И все же, если я заменю source lib/*
на:
source lib/get.sh
source lib/clean.sh
source lib/index.sh
source lib/test.sh
Все работает как положено.
Кто-нибудь знает, почему source lib/*
не работает, как ожидалось?
/etc/bashrc
как он используетfor
цикл для решения/etc/profile.d/*.sh
. Если вы доверяете содержимому,lib/
его можно сократить до однострочного:for i in lib/*.sh; do . "$i"; done