কম্পিউটার

ব্যাশে সহযোগী অ্যারেগুলির সাথে আপনার ডেটা নিয়ন্ত্রণ করুন

আপনি যদি কখনও কোড লিখে থাকেন, তা শেল স্ক্রিপ্ট, পাইথন স্ক্রিপ্ট, C++, এমনকি স্ক্র্যাচই হোক না কেন, তাহলে আপনি জানেন যে ভেরিয়েবলগুলি গুরুত্বপূর্ণ। কম্পিউটার এবং কোডাররা ভেরিয়েবলগুলিকে ওয়েস্টেশন হিসাবে ব্যবহার করে, যেখানে তারা গোপনে তথ্যগুলিকে সামনে এবং পিছনে প্রেরণ করে। উদাহরণস্বরূপ, যদি আপনি একটি শেল স্ক্রিপ্টে একটি ব্যবহারকারীর নাম প্রক্রিয়া করতে চান, আপনি একটি ভেরিয়েবল সেট আপ করতে পারেন, ভেরিয়েবলের মধ্যে ব্যবহারকারীর নাম রাখতে পারেন এবং তারপরে কম্পিউটারকে ভেরিয়েবলের সাথে কিছু করার নির্দেশ দিতে পারেন (অনুমোদিত ব্যবহারকারীদের একটি তালিকার বিরুদ্ধে এটি পরীক্ষা করুন) , উদাহরণ স্বরূপ). ভেরিয়েবলগুলি গুরুত্বপূর্ণ কারণ তারা গতিশীলভাবে কোড সক্ষম করে:তারা এমন তথ্যের জন্য স্থানধারক যা আপনি প্রতিবার কোড চালানোর সময় পরিবর্তিত হবে বলে প্রত্যাশিত৷

কিন্তু ভেরিয়েবল, কারণ তারা খুব সাধারণ, এছাড়াও বরং অবাধ্য হয়ে উঠতে পারে। প্রায়শই, আপনি একটি কোড প্রকল্পে এতগুলি ভেরিয়েবল সংগ্রহ করেন যে সেগুলির ট্র্যাক রাখা অসম্ভব। আপনি চতুর নিয়মগুলি ব্যবহার করতে পারেন, যেমন একটি সাধারণ স্ট্রিং (user_name, user_pass, user_time, ইত্যাদি) সহ সমস্ত সম্পর্কিত ভেরিয়েবলের প্রিফিক্সিং, অথবা আপনি সহজ রেফারেন্সের জন্য কোথাও তাদের একটি মাস্টার তালিকা তৈরি করতে পারেন, তবে এটির উপর নজর রাখা সবই ট্যাক্সিং হয়ে উঠতে পারে।

এই সমস্যার একটি উত্তর, ঐতিহ্যগতভাবে, অ্যারে হয়েছে. ব্যাশের মত শেল স্ক্রিপ্টিং ল্যাঙ্গুয়েজ সহ বেশিরভাগ কোডিং ল্যাঙ্গুয়েজগুলিতে এগুলি ভাল কাজ করেছে।

বেশিরভাগ শেল ইনডেক্সড অ্যারে তৈরি, ম্যানিপুলেট এবং কোয়েরি করার ক্ষমতা দেয়। সরল ইংরেজিতে, একটি সূচীকৃত অ্যারে হল একটি সংখ্যার সাথে উপসর্গযুক্ত জিনিসগুলির একটি তালিকা। জিনিসের এই তালিকা, তাদের নির্ধারিত নম্বর সহ, সুবিধাজনকভাবে একটি একক ভেরিয়েবলে মোড়ানো হয়, যা আপনার কোডে "বহন" করা সহজ করে তোলে৷

ব্যাশ, তবে, অ্যাসোসিয়েটিভ অ্যারে তৈরি করার ক্ষমতা অন্তর্ভুক্ত করে এবং এটি এই অ্যারেগুলিকে অন্য যে কোনও অ্যারের মতোই বিবেচনা করে। একটি সহযোগী অ্যারে আপনাকে সংখ্যাযুক্ত মানের পরিবর্তে কী এবং মান জোড়ার তালিকা তৈরি করতে দেয়।

আপনি নির্বিচারে কীগুলিতে মান নির্ধারণ করতে পারেন:

$ ঘোষণা করুন -A userdata
$ userdata[name]=seth
$ userdata[pass]=8eab07eb620533b083f241ec4e6b9724
$ userdata[লগইন]=`date --utc +%s`

যেকোনো কী জিজ্ঞাসা করুন:

$ echo "${userdata[name]}"
seth
$ echo "${userdata[login]}"
1583362192

আপনি একটি অ্যারে থেকে আশা করতে চান এমন বেশিরভাগ সাধারণ অ্যারে অপারেশন উপলব্ধ। উদাহরণস্বরূপ, আপনি সমস্ত মান তালিকাভুক্ত করতে পারেন:

$ echo "${userdata[*]}"
8eab07eb620533b083f241ec4e6b9724 সেট 1583362192

আপনি সম্পূর্ণ অ্যারে দেখতে পারেন:

$ প্রকারসেট -A
ঘোষণা করুন -A BASH_ALIASES='()'
ঘোষনা করুন -A BASH_CMDS='()'
ঘোষণা করুন -A userdata='([pass]="8eab07eb620533b083f241ec4e6b9724 "

আপনি আনসেট ব্যবহার করে আপনার অ্যারে থেকে আইটেমগুলি সরাতে পারেন৷ কমান্ড:

$ unset userdata[pass]
$ typeset -A
[...]
declare -A userdata='([name]="seth"
[লগইন করুন ]="1583362192" )'

অবশেষে, আপনি সম্পূর্ণ অ্যারে খারিজ করতে পারেন।

$ unset "userdata[*]" 

ডেটার জন্য অ্যারে

অ্যারেগুলি একসাথে সম্পর্কিত ডেটা সংরক্ষণের জন্য দরকারী সরঞ্জাম। আপনি বেশিরভাগ ক্ষেত্রে একটি সাধারণ পুরানো ভেরিয়েবল ব্যবহার করতে পারেন, কিন্তু কখনও কখনও এটি একটি অ্যারেতে একটি একক ডেটা "অবজেক্ট" এর বৈশিষ্ট্যগুলি সংরক্ষণ করা আরও যৌক্তিক, ডেটা একত্রিত এবং সূচীবদ্ধ রাখতে। উদাহরণস্বরূপ, আপনি যদি utmp থেকে নেওয়া লগইন নাম এবং সময় প্রক্রিয়াকরণ করছেন , আপনার সহযোগী করা আরও উপযোগী হবে৷ কোনো সুস্পষ্ট সংযোগ ছাড়াই দুটি ডেটা অবজেক্টকে আলাদা ভেরিয়েবল হিসেবে সংরক্ষণ করার পরিবর্তে, ব্যবহারকারীর সাথে লগইন সময় যাকে সময় উল্লেখ করেছে।

উপরন্তু, ভেরিয়েবলের বিপরীতে, একটি অ্যারের মধ্যে একটি এন্ট্রি থাকা দরকার নেই আপনি এটিতে ডেটা সঞ্চয় করার আগে। আপনি এটি সঞ্চয় করার আগে ঠিক কতটা ডেটা সংরক্ষণ করা হচ্ছে তা জানতে হবে না। এটি একটি বড় সুবিধা হতে পারে যদি আপনি এমন ডেটা প্রসেসিং করেন যা আপনি নিয়ন্ত্রণ বা ভবিষ্যদ্বাণী করতে পারবেন না:আপনি যদি না জানেন যে কতজন ব্যবহারকারী utmp এ আশা করবেন একদিন থেকে পরের দিন, সমস্ত এন্ট্রি ধারণ করার জন্য একটি স্ক্রিপ্ট তৈরি করা কঠিন। যদিও একটি অ্যারের সাথে, আপনাকে যা করতে হবে তা হল একটি অ্যারে ঘোষণা করতে হবে এবং এতে ডেটা পড়তে হবে, একটি নতুন কী এবং মান জোড়া তৈরি করতে হবে যতক্ষণ না পর্যন্ত আপনার ইনজেস্ট করার জন্য ডেটা শেষ হয়ে যায়।

অ্যারেগুলি শক্তিশালী, এবং এগুলি ব্যাশের বাইরে প্রোগ্রামিং ভাষায় সাধারণ। এখনই তাদের ব্যবহার শুরু করুন!


  1. ব্যাশ-ইট - আপনার স্ক্রিপ্ট এবং উপনাম নিয়ন্ত্রণ করতে ব্যাশ ফ্রেমওয়ার্ক

  2. ব্যাশ টুলের সাহায্যে আপনার লিনাক্স সিস্টেম কনফিগারেশনের স্ক্রিনশট করুন

  3. আপনার ভয়েস দিয়ে আপনার উইন্ডোজ 10 পিসিকে কীভাবে নিয়ন্ত্রণ করবেন

  4. কিভাবে স্ল্যাক থেকে মাইক্রোসফ্ট টিমগুলিতে স্থানান্তরিত করবেন এবং আপনার ডেটা আপনার সাথে নিয়ে যাবেন