У мене є невелика програма, яка містить таку структуру папок:
- 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