मेरे पास एक छोटा प्रोग्राम है जिसमें निम्नलिखित फ़ोल्डर संरचना शामिल है:
- 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