次のフォルダー構造を含む小さなプログラムがあります。
- main.sh
- lib/
- clean.sh
- get.sh
- index.sh
- test.sh
各ファイルには、で使用する1つの関数が含まれていますmain.sh
。
main.sh
:
source lib/*
get_products
clean_products
make_index
test_index
上記では、最初の2つの関数は機能しますが、2番目の2つは機能しません。
それでも私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/
できる場合は、1行に減らすことができますfor i in lib/*.sh; do . "$i"; done