উত্তর:
কেবল এটি অ্যারে ডিক্লেয়ারেশনের ডান দিকের ভিতরে প্রসারিত করুন:
list=(../smth*/) # grab the list
echo "${#list[@]}" # print array length
echo "${list[@]}" # print array elements
for file in "${list[@]}"; do echo "$file"; done # loop over the array
মনে রাখবেন যে শেল বিকল্পটি nullglob
সেট করা দরকার।
এটি ডিফল্টরূপে সেট করা নেই।
গ্লোব (বা একাধিক গ্লোবগুলির একটি) কোনও নামের সাথে মেলে না এমন ক্ষেত্রে এটি একটি ত্রুটি প্রতিরোধ করে।
bash
সাথে এটি সেট করুন
shopt -s nullglob
বা zsh
সাথে
setopt nullglob
unsetopt
এবং একই প্যারামিটারটির জন্য ব্যবহৃত setopt
।
জিনিসগুলিকে অত্যধিক জটিল করার দরকার নেই:
echo your/stuff*
TEST=$(echo your/stuff*) && eval \"$TEST\"
আউটপুট হবে:your/stuff*: No such file or directory
TEST
ভেরিয়েবলকে স্ট্রিং হিসাবে *
বিস্তৃত না করে মূল্যায়ন করা হয় ।
*
।