Saya memiliki program kecil yang berisi struktur folder berikut:
- main.sh
- lib/
- clean.sh
- get.sh
- index.sh
- test.sh
Setiap file berisi satu fungsi yang saya gunakan di main.sh
.
main.sh
:
source lib/*
get_products
clean_products
make_index
test_index
Di atas dua fungsi pertama bekerja tetapi yang kedua tidak.
Namun jika saya ganti source lib/*
dengan:
source lib/get.sh
source lib/clean.sh
source lib/index.sh
source lib/test.sh
Semuanya berfungsi seperti yang diharapkan.
Adakah yang tahu mengapa source lib/*
tidak bekerja seperti yang diharapkan?
/etc/bashrc
bagaimana menggunakanfor
loop untuk menangani/etc/profile.d/*.sh
. Jika Anda memercayai isinyalib/
dapat direduksi menjadi satu-liner:for i in lib/*.sh; do . "$i"; done