কম্পিউটার

লিনাক্সে নেস্টেড ভেরিয়েবল সাবস্টিটিউশন এবং পূর্বনির্ধারিত BASH ভেরিয়েবল - পার্ট 11

BASH Shell-এর শেষ দুটি প্রবন্ধ, যেখানে আমরা ভেরিয়েবল নিয়ে বিস্তারিত আলোচনা করেছি আমাদের পাঠকদের মধ্যে অত্যন্ত প্রশংসিত হয়েছে। আমরা Tecmint-টিম হিসেবে আপনাকে সর্বশেষ, আপ-টু-ডেট এবং প্রাসঙ্গিক বিষয়গুলি বিশদে কভার করতে খুব আগ্রহী। তাছাড়া আমরা সবসময় সংশ্লিষ্ট বিষয়ের প্রধান দৃষ্টিকোণ স্পর্শ করার চেষ্টা করি।

লিনাক্সে নেস্টেড ভেরিয়েবল সাবস্টিটিউশন এবং পূর্বনির্ধারিত BASH ভেরিয়েবল - পার্ট 11

এখানে লিনাক্স ভেরিয়েবলের শেষ নিবন্ধ যেখানে আমরা এই বিষয়টি বন্ধ করার আগে শেল-এ সংজ্ঞায়িত ভেরিয়েবল প্রতিস্থাপন এবং ভেরিয়েবলগুলি দেখতে যাচ্ছি৷

কমান্ডটি কার্যকর হওয়ার আগে Bash পরিবর্তনশীল প্রতিস্থাপন করে। লিনাক্স ব্যাশ শেল কমান্ডটি কার্যকর করার আগে সমস্ত '$' চিহ্ন অনুসন্ধান করে এবং এটিকে ভেরিয়েবলের মান দিয়ে প্রতিস্থাপন করে। ব্যাশ ভেরিয়েবল প্রতিস্থাপন প্রক্রিয়া শুধুমাত্র একবার সঞ্চালিত হয়. যদি আমাদের নেস্টেড ভেরিয়েবল থাকে?

নোট৷ :নেস্টেড ভেরিয়েবল বলতে আমরা বুঝি, ভেরিয়েবল ভেরিয়েবলের ভিতরে ঘোষিত। নিচের উদাহরণে উপরের দৃশ্যটি দেখা যাক।

একটি ভেরিয়েবল ঘোষণা করুন যা শুধুমাত্র পঠনযোগ্য এবং নীচের মত এক্সিকিউটেবল।

admin@wsxdn.com:~$ declare -rx Linux_best_website="www.tecmint.com"

সংরক্ষিত ভেরিয়েবলের মান পরীক্ষা করুন।

admin@wsxdn.com:~$ printf "%s" "$Linux_best_website" 

www.tecmint.com

এখন আরেকটি ভেরিয়েবল ঘোষণা করুন যা আবার শুধুমাত্র পঠনযোগ্য এবং এক্সিকিউটেবল।

admin@wsxdn.com:~$ declare -rx Linux_website="Linux_best_website"

এখন পরিস্থিতি হল, আমরা দুটি ভেরিয়েবল সংজ্ঞায়িত করেছি।

'Linux_best_website', যার মান হল "www.tecmint.com"
এবং, 'Linux_website', যার মান হল "Linux_best_website"

ফলাফল কি হবে, যদি আমরা নিচের ওয়ান-লাইন কমান্ড চালাই?

admin@wsxdn.com:~$ printf "%s" "$Linux_website"

এটি প্রথমে '$Linux_website ভেরিয়েবলটি প্রতিস্থাপন করবে ', মান সহ “Linux_best_website ” এবং তারপরে “$Linux_best_website ” আবার একটি পরিবর্তনশীল যার মান হল “www.tecmint.com ” তাই নিচের কমান্ডটি চালানোর চূড়ান্ত আউটপুট হওয়া উচিত।

admin@wsxdn.com:~$ printf "%s" "$Linux_website" 

www.tecmint.com

কিন্তু দুর্ভাগ্যবশত, এই পরিস্থিতি নয়, আমরা যে আউটপুট পাচ্ছি তা হল Linux_best_website .

কারণ? হা! Bash শুধুমাত্র একবার পরিবর্তনশীলের মান প্রতিস্থাপন করে। জটিল স্ক্রিপ্ট এবং প্রোগ্রামগুলি সম্পর্কে কী হবে যেখানে আমাদের ঘন ঘন ভেরিয়েবল প্রতিস্থাপন করতে হবে এবং একই সাথে একাধিকবার পরিবর্তনশীল প্রতিস্থাপন করতে হবে?

এখানে 'eval কমান্ড আসে ' যা একটি স্ক্রিপ্টে একাধিকবার পরিবর্তনশীল প্রতিস্থাপনের অতিরিক্ত কাজ করে। পুরো কাজটিকে কাঁচের মতো পরিষ্কার করার জন্য এখানে একটি উদাহরণ দেওয়া হল৷

একটি পরিবর্তনশীল x ঘোষণা করুন , যার মান হল 10 .

admin@wsxdn.com:~/Desktop$ declare x=10

পরিবর্তনশীল x এর মান পরীক্ষা করুন , আমরা শুধু সংজ্ঞায়িত করেছি।

admin@wsxdn.com:~/Desktop$ echo $yx

x10

একটি পরিবর্তনশীল y ঘোষণা করুন , যার মান হল x .

admin@wsxdn.com:~/Desktop$ declare y=x

পরিবর্তনশীল y এর মান পরীক্ষা করুন , আমরা শুধু সংজ্ঞায়িত করেছি।

admin@wsxdn.com:~/Desktop$ echo $y 

x

এখানে BASH এর সমস্যা এক সময়ের পরিবর্তনশীল প্রতিস্থাপন, যা পরিবর্তনশীল প্রতিস্থাপনের অতিরিক্ত রাউন্ড সঞ্চালন করে না। আমরা 'eval ব্যবহার করছি ' এটি ঠিক করার জন্য কমান্ড।

admin@wsxdn.com:~/Desktop$ eval y=$x

এখন 'y ভেরিয়েবলের মান পরীক্ষা করুন '।

admin@wsxdn.com:~/Desktop$ echo $y 

10

হুররাহ! সমস্যাটি ঠিক করা হয়েছে এবং 'eval হয়েছে৷ ' কমান্ড রেসে জিতেছে :)

উল্লেখ করার মতো নয়, 'eval 'কমান্ড বড় স্ক্রিপ্ট প্রোগ্রামে খুব সহায়ক এবং এটি একটি খুব সহজ টুল।

এই পোস্টের শেষ কিন্তু সামান্যতম অংশটি হল BASH পূর্বনির্ধারিত ভেরিয়েবল। না! এই তালিকা দেখে আতঙ্কিত হবেন না। কয়েকটি ছাড়া স্ক্রিপ্ট লেখা শুরু করার আগে আপনাকে কখনই পুরো তালিকাটি মনে রাখতে হবে না। শেখার প্রক্রিয়ার অংশ হিসেবে, আমরা BASH পূর্বনির্ধারিত পরিবর্তনশীল তালিকা উপস্থাপন করছি।

৷ ৷ ৷ ৷ ৷ ৷
না। ব্যাশ ভেরিয়েবল ফলাফল
1 অটো_রিজুমে থামানো কাজের জন্য প্রসেস কমান্ড সমাপ্তি।
2 BASH শেলের পথ।
3 BASH_ENV প্রোফাইল ফাইলের নাম দেখায়
4BASH_VERSION ব্যাশের সংস্করণ দেখায়
5 BASH_VERSINFO বিস্তারিত সংস্করণ তথ্য দেখায়৷
6 BASH_VERSINFO[0] প্রধান সংস্করণ নম্বর (রিলিজ)।
7 BASH_VERSINFO[1] অপ্রধান সংস্করণ নম্বর (সংস্করণ)।
8 BASH_VERSINFO[2] প্যাচ স্তর।
9 BASH_VERSINFO[3] বিল্ড সংস্করণ৷
10 BASH_VERSINFO[4] রিলিজের স্থিতি (উদাহরণস্বরূপ, beta1)।
11 BASH_VERSINFO[5] MACHTYPE এর মান।
12 CDPATH কোলন দ্বারা পৃথক করা ডিরেক্টরিগুলির তালিকা৷
13 COLUMNS স্ট্যান্ডার্ড আউটপুটে প্রতি লাইনে অক্ষরের সংখ্যা।
14 EUID বর্তমান ব্যবহারকারীর ব্যবহারকারী আইডি।
15 FCEDIT fc কমান্ডের জন্য ডিফল্ট পাঠ্য সম্পাদক।
16 FUNCNAME মজার নাম
17 GROUPS যে গোষ্ঠীর ব্যবহারকারী একজন সদস্য৷
18 HISTFILE কমান্ড ইতিহাস ধারণকারী ফাইল।
19 হোম আপনার হোম ডিরেক্টরির নাম৷
20 LINES স্ট্যান্ডার্ড আউটপুটে অনুভূমিক রেখার সংখ্যা।
21 মেইল ইনকামিং মেল চেক করার জন্য একটি ফাইলের নাম
22 OSTYPE অপারেটিং সিস্টেমের নাম৷
23 OLDPWD পূর্ববর্তী কার্যকরী ডিরেক্টরি
24 PWD বর্তমান কার্যকারী ডিরেক্টরি
25 RANDOM একটি এলোমেলো নম্বর প্রিন্ট করে
26 শেল ব্যবহারের জন্য পছন্দের শেল
27 TIMEFORMAT সময় কমান্ডের বিন্যাস।
28 UID বর্তমান ব্যবহারকারীর আইডি

পূর্বনির্ধারিত BASH ভেরিয়েবলের একটি বিশাল তালিকা রয়েছে। আমরা প্রায়শই ব্যবহৃত একটি তালিকা তৈরি করার চেষ্টা করেছি৷

এখন এ পর্যন্তই. আমি এখানে আরেকটি আকর্ষণীয় নিবন্ধ নিয়ে আবার আসব। ততক্ষণ পর্যন্ত সাথে থাকুন এবং TecMint এর সাথে সংযুক্ত থাকুন . নীচের মন্তব্য বিভাগে আপনার মূল্যবান মতামত আমাদের প্রদান করতে ভুলবেন না।


  1. লিনাক্স টার্মিনাল প্রম্পটে ব্যাশের রঙ এবং বিষয়বস্তু কীভাবে কাস্টমাইজ করবেন

  2. শেল স্ক্রিপ্টিং-এ 'লিনাক্স ভেরিয়েবল' বোঝা এবং লেখা - পার্ট 10

  3. শেল স্ক্রিপ্টিং ল্যাঙ্গুয়েজে লিনাক্স "ভেরিয়েবল" এর অন্তর্দৃষ্টি - পার্ট 9

  4. ব্যাশ ভেরিয়েবল টিউটোরিয়াল – 6 ব্যবহারিক ব্যাশ গ্লোবাল এবং লোকাল ভেরিয়েবল উদাহরণ