বলুন শেল স্ক্রিপ্টে আমার বেশ কয়েকটি ভেরিয়েবল রয়েছে (যেমন zsh এ):
FOLDER_1, FOLDER_2, etc.
এই ভেরিয়েবলগুলি নীচে থেকে নেমে আসা ফোল্ডারগুলি উল্লেখ করে /
। উদাহরণস্বরূপ, যদি আমার কোনও পথ থাকে/home/me/stuff/items
ভেরিয়েবলগুলি হবে:
FOLDER_1='home'
FOLDER_2='me'
FOLDER_3='stuff'
এখন, বলুন যে আমি ভেরিয়েবলগুলি যুক্ত করে সংশ্লিষ্ট পাথটি আবার তৈরি করতে চাই। একটি সম্ভাব্য উপায় হ'ল পথটি নিম্নরূপভাবে তৈরি করা:
PATH=$FOLDER_1/$FOLDER_2/$FOLDER_3/
যাইহোক, বলুন যে কিছু ভেরিয়েবলগুলি FOLDER_i
পিছনে ফোর্ড স্ল্যাশ নিয়ে আসে, অন্যরা (এবং আমরা জানি না যে) উদাহরণস্বরূপ
FOLDER_1='home'
FOLDER_2='stuff/'
FOLDER_3='items'
আমার প্রশ্ন: আমি কীভাবে দৃ rob়ভাবে পথটি তৈরি করতে পারি? (যেমন ডাবল স্ল্যাশ এড়ানো এবং তাদের যেখানে হওয়া দরকার সেখানে যুক্ত করুন)।
আমি ভেবেছিলাম এটি করার একটি উপায় হ'ল /
জোড় পরিবর্তনকের মধ্যে সর্বদা যুক্ত করা এবং এর সাথে কোনও সদৃশ মুছে ফেলা sed
, তবে আমি এটি কাজ করতে পারি না (আমি নিশ্চিত না যে আমি /
সঠিকভাবে পরিচালনা করছি sed
) am
এছাড়াও, আমি চাকা পুনরায় উদ্ভাবন করছি ? (অর্থাত্ কোনও বিল্ট-ইন রয়েছে যা ইতিমধ্যে এটি করে?)।
শেষ পর্যন্ত, যদি ভেরিয়েবলগুলি একটি অ্যারেতে থাকে , উদাহরণস্বরূপ FOLDERS
, লুপ না করে এটি করা কি সম্ভব? (বা বিকল্পভাবে, লুপিং দ্বারা কিন্তু FOLDERS
অ্যারেতে কত রয়েছে তা না জেনে )।
%
পদ্ধতিটি কোয়েস্টনে উল্লিখিত একক পেছনের স্ল্যাশের জন্য কাজ করে। যখন একাধিক স্ল্যাশ থাকে তখন তার জন্য${parts[@]%%/*}
কাজ করে। এখানে স্ল্যাশ ইস্যুতে আরও কিছু তথ্যের একটি লিঙ্ক: ইউনিক্স পথে ডাবল স্ল্যাশ বলতে কী বোঝায়? 'সিডি দির / সাবডির // বৈধ ...