ধরে নিচ্ছি আপনি bash
রিলিজ ৪.০ বা আরও নতুন ব্যবহার করছেন ...
CODE=A
declare -A domain
domain=(
[a]=com.tencent.ig
[b]=com.vng.pubgmobile
[c]=com.pubg.krmobile
[d]=com.rekoo.pubgm
)
PN=${domain[${CODE,,}]:?ERROR! CODE KOSONG, MELAKUKAN EXIT OTOMATIS}
কোডটিতে, আমি একটি ডোমেনির সমস্ত অক্ষর সমন্বিত একটি অ্যারেসিয়েটিভ অ্যারে সংজ্ঞায়িত করি, প্রতিটি একক অক্ষরের লোয়ার-কেসের সাথে যুক্ত।
$PN
পরিবর্তনশীল ডোমেইন নাম কম cased সংশ্লিষ্ট নির্ধারিত হয় $CODE
মান ( ${CODE,,}
রিটার্ন মান $CODE
শুধুমাত্র ছোট হাতের অক্ষর পরিণত) এই অ্যারে থেকে, কিন্তু যদি $CODE
একটি বৈধ এন্ট্রি সঙ্গে সঙ্গতিপূর্ণ নয় domain
তালিকা, এটি একটি সহ স্ক্রিপ্টের প্রস্থান করে ত্রুটি.
${variable:?error message}
পরামিতি প্রতিকল্পন মান প্রসারিত হবে $variable
(কোড যথাযথ ডোমেন) কিন্তু ত্রুটি বার্তা সহ স্ক্রিপ্ট থেকে প্রস্থান করবে মান খালি পাওয়া যায় না। আপনি আপনার কোডের মতো ত্রুটি বার্তার হুবহু একই বিন্যাসটি পান না তবে অবৈধ হলে এটি মূলত একই আচরণ করবে $CODE
:
$ bash script.sh
script.sh: line 12: domain[${CODE,,}]: ERROR! CODE KOSONG, MELAKUKAN EXIT OTOMATIS
আপনি যদি চরিত্র গণনা সম্পর্কে যত্নশীল হন তবে আমরা এটি আরও সংক্ষিপ্ত করে তুলতে পারি:
CODE=A
declare -A domain=( [a]=tencent.ig [b]=vng.pubgmobile [c]=pubg.krmobile [d]=rekoo.pubgm )
PN=com.${domain[${CODE,,}]:?ERROR! CODE KOSONG, MELAKUKAN EXIT OTOMATIS}
অপ্রয়োজনীয় নিউলাইনগুলি মোছা ছাড়াও, আমি com.
প্রতিটি ডোমেন থেকেও সরিয়েছি (এটি পরিবর্তে নিয়োগের ক্ষেত্রে যুক্ত করা হয় PN
)।
নোট করুন যে উপরের সমস্ত কোড এমনকি একাধিক অক্ষরের মানের জন্যও কাজ করবে $CODE
(যদি domain
অ্যারেতে এর জন্য নিম্ন-কেসযুক্ত কীগুলি বিদ্যমান থাকে )।
পরিবর্তে যদি $CODE
একটি সংখ্যাসূচক (শূন্য-ভিত্তিক) সূচক হয়, এটি কোডটি কিছুটা সরল করবে:
CODE=0
domain=( com.tencent.ig com.vng.pubgmobile com.pubg.krmobile com.rekoo.pubgm )
PN=${domain[CODE]:?ERROR! CODE KOSONG, MELAKUKAN EXIT OTOMATIS}
এটি অতিরিক্ত domain
প্রতিটি লাইনে প্রতি একটি এন্ট্রি সহ সহায়ক ফাইল থেকে অ্যারেটি পড়া সহজ করে তোলে :
CODE=0
readarray -t domain <domains.txt
PN=${domain[CODE]:?ERROR! CODE KOSONG, MELAKUKAN EXIT OTOMATIS}
bash
কোড? নাকি আপনার মনে অন্য কোনও শেল আছে?