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")
অ্যারের a
2 থেকে 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
:
unset
Builtin অ্যারে ধ্বংস করতে ব্যবহৃত হয়। unset name[subscript]
সূচকে অ্যারের উপাদানটি ধ্বংস করে subscript
। সূচকযুক্ত অ্যারেতে নেতিবাচক সাবস্ক্রিপ্টগুলি উপরে বর্ণিত হিসাবে ব্যাখ্যা করা হয়েছে। পথের নাম সম্প্রসারণের কারণে অযাচিত পার্শ্ব প্রতিক্রিয়া এড়াতে যত্ন নেওয়া উচিত। unset name
, কোথায় name
একটি অ্যারে, বা unset name[subscript]
যেখানে subscript
রয়েছে *
বা @
সম্পূর্ণ অ্যারে সরিয়ে দেয়।