unsetএকটি উপাদান অপসারণ। এটি বাকি উপাদানগুলিকে পুনর্বার করে না।
আমরা declare -pঠিক কী হয় তা দেখতে ব্যবহার করতে পারি numbers:
$ unset "numbers[i]"
$ declare -p numbers
declare -a numbers=([0]="53" [1]="8" [2]="12" [3]="9" [5]="69" [6]="8" [7]="7" [8]="1")
numbersআর কোনও উপাদান নেই তা পর্যবেক্ষণ করুন 4।
আরেকটি উদাহরণ
পালন:
$ a=()
$ a[1]="element 1"
$ a[22]="element 22"
$ declare -p a
declare -a a=([1]="element 1" [22]="element 22")
অ্যারের a2 থেকে 21 এর মধ্যে কোনও উপাদান নেই Bash
সূচকের পুনর্নির্মাণকে বাধ্য করার জন্য প্রস্তাবিত পদ্ধতি
আসুন numbersঅনুপস্থিত উপাদান দিয়ে অ্যারে দিয়ে শুরু করা যাক 4:
$ declare -p numbers
declare -a numbers=([0]="53" [1]="8" [2]="12" [3]="9" [5]="69" [6]="8" [7]="7" [8]="1")
যদি আমরা সূচকগুলি পরিবর্তন করতে চাই, তবে:
$ numbers=("${numbers[@]}")
$ declare -p numbers
declare -a numbers=([0]="53" [1]="8" [2]="12" [3]="9" [4]="69" [5]="8" [6]="7" [7]="1")
এখন একটি উপাদান সংখ্যা 4এবং এটি মূল্য আছে 69।
এক পদক্ষেপে কোনও উপাদান এবং রেন্টার অ্যারে সরানোর বিকল্প পদ্ধতি
আবার, এর সংজ্ঞা দেওয়া যাক numbers:
$ numbers=(53 8 12 9 784 69 8 7 1)
মন্তব্যে টবি স্পিডের পরামর্শ অনুসারে , চতুর্থ উপাদানটি অপসারণ এবং অবশিষ্ট উপাদানগুলিকে এক ধাপে পুনর্বিবেচনা করার একটি পদ্ধতি:
$ numbers=("${numbers[@]:0:4}" "${numbers[@]:5}")
$ declare -p numbers
declare -a numbers=([0]="53" [1]="8" [2]="12" [3]="9" [4]="69" [5]="8" [6]="7" [7]="1")
আপনি দেখতে পাচ্ছেন, চতুর্থ উপাদানটি সরানো হয়েছিল এবং বাকি সমস্ত উপাদানকে পুনরায় নামকরণ করা হয়েছিল।
${numbers[@]:0:4}স্লাইস অ্যারে numbers: এটি 0 টি দিয়ে শুরু হওয়া প্রথম চারটি উপাদান নেয়।
একইভাবে, ${numbers[@]:5}স্লাইস অ্যারে numbers: এটি উপাদান 5 থেকে শুরু করে অ্যারের শেষ অবধি অবধি সমস্ত উপাদান গ্রহণ করে takes
একটি অ্যারের সূচকগুলি প্রাপ্ত
মান একটি অ্যারের সঙ্গে প্রাপ্ত করা যাবে ${a[@]}। এই মানগুলির সাথে মিলে এমন সূচকগুলি (বা কীগুলি ) সন্ধান করতে ব্যবহার করুন ${!a[@]}।
উদাহরণস্বরূপ, numbersঅনুপস্থিত উপাদানটির সাথে আবার আমাদের অ্যারে বিবেচনা করুন 4:
$ declare -p numbers
declare -a numbers=([0]="53" [1]="8" [2]="12" [3]="9" [5]="69" [6]="8" [7]="7" [8]="1")
কোন সূচকগুলি নির্ধারিত হয়েছে তা দেখতে:
$ echo "${!numbers[@]}"
0 1 2 3 5 6 7 8
আবার 4সূচকগুলির তালিকা থেকে নিখোঁজ।
নথিপত্র
থেকে man bash:
unsetBuiltin অ্যারে ধ্বংস করতে ব্যবহৃত হয়। unset name[subscript]সূচকে অ্যারের উপাদানটি ধ্বংস করে subscript। সূচকযুক্ত অ্যারেতে নেতিবাচক সাবস্ক্রিপ্টগুলি উপরে বর্ণিত হিসাবে ব্যাখ্যা করা হয়েছে। পথের নাম সম্প্রসারণের কারণে অযাচিত পার্শ্ব প্রতিক্রিয়া এড়াতে যত্ন নেওয়া উচিত। unset name, কোথায় nameএকটি অ্যারে, বা unset name[subscript]যেখানে subscriptরয়েছে * বা @সম্পূর্ণ অ্যারে সরিয়ে দেয়।