আমার একটি ছোট প্রোগ্রাম রয়েছে যাতে নিম্নলিখিত ফোল্ডারটির কাঠামো রয়েছে:
- 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