এই আর্টিকেলে দেখানো হয়েছে লিনাক্সে ব্যাশ এবং শেল স্ক্রিপ্টে ভেরিয়েবল কিভাবে ব্যবহার করবেন।
Bash (অথবা লিনাক্স শেল) স্ক্রিপ্ট হলো আপনার লেখা ফাইল যাতে কমান্ড থাকে সাধারণ টাস্ক অটোমেট করতে এবং সময় বাঁচাতে।
Variables হলো স্ক্রিপ্টে এমন জিনিস যা ভবিষ্যতের জন্য একটি ভ্যালু ধরে রাখে - একটি নাম্বার, বা একটি ফাইলনেম, বা যেকোনো কিছু।
লিনাক্স শেল স্ক্রিপ্টে ভেরিয়েবল ডিফাইন ও ব্যবহার করার পদ্ধতি এখানে। এই উদাহরণগুলো সবচেয়ে জনপ্রিয় লিনাক্স শেলগুলোতে, Bash, এবং Zsh-এ কাজ করা উচিত।
ব্যাশ ভেরিয়েবল ডিক্লেয়ার করা
ব্যাশ VARIABLES ডিফল্টলি UNTYPED। আপনি বলতে পারবেন না ভেরিয়েবলের সাথে কী করা যাবে - এটি ইমপ্লাইড।
সারমর্মে, সব ভেরিয়েবল স্ট্রিং হিসেবে স্টোর হয় এবং ব্যবহার করার সময় কন্টেক্সট অনুযায়ী হ্যান্ডেল হয় - যদি একটি স্ট্রিং নাম্বার ধারণ করে, এটি নাম্বার হিসেবে বութ করবে যদি আপনি ইনক্রিমেন্ট করার চেষ্টা করেন, ইত্যাদি।
নিচে কিছু ভেরিয়েবল ডিক্লেয়ার করা হয়েছে - MY_STRING, MY_FILE_PATH, এবং MY_NUMBER। এই সবই অনটাইপড ভেরিয়েবল।
#!/bin/bash MY_STRING="Hello Linux!" MY_FILE_PATH=/path/to/my/file.txt MY_NUMBER=4
#! সম্পর্কে জানতে এখানে ক্লিক করুন
'declare' কমান্ড সিনট্যাক্স
নোট করুন declare Bash এনভায়রনমেন্ট-স্পেসিফিক এবং অন্য শেল ব্যবহার করলে প্রেজেন্ট নাও থাকতে পারে।
declare-এর সিনট্যাক্স নিচের মতো:
declare OPTIONS variable_name=variable_value
নোট করুন:
- OPTIONS অপশনাল এবং নিচের টেবিল থেকে পিক করা যায় ভেরিয়েবলের টাইপ বা বিহেভিয়ার সেট করতে
- variable_name হলো আপনি যে ভেরিয়েবল ডিফাইন/ডিক্লেয়ার করতে চান তার নাম
- variable_value হলো সে ভেরিয়েবলটির ভ্যালু
| declare অপশন | অর্থ | |
|---|---|---|
| -r | readonly | রিড-অনلی ভেরিয়েবল ডিক্লেয়ার করুন |
| -i | integer | ইন্টিজার ভেরিয়েবল ডিক্লেয়ার করুন |
| -a | array | অ্যারে ভেরিয়েবল ডিক্লেয়ার করুন |
| -f | function(s) | ফাংশন ভেরিয়েবল ডিক্লেয়ার করুন |
| -x | export | স্ক্রিপ্টের বাইরে এক্সপোর্ট করা যাবে এমন ভেরিয়েবল ডিক্লেয়ার করুন |
'declare' কমান্ড উদাহরণ
এখানে একটি স্ট্রিং ভেরিয়েবল ডিক্লেয়ার করা হয়েছে (অর্থাৎ কোন OPTIONS সাপ্লাই না করা), এবং তারপর একটি ইন্টিজার ভেরিয়েবল।
#!/bin/bash declare MY_STRING="Hello Linux!" declare -i MY_NUMBER=4
এখন, আপনি যদি MY_STRING ভেরিয়েবলের ভ্যালু MY_NUMBER ভেরিয়েবলে অ্যাসাইন করার চেষ্টা করেন, MY NUMBER ০ সেট হবে - কারণ স্ট্রিং নাম্বারে ইভ্যালুয়েট হয় না।
declare শুধু বেসিক টাইপিং ফাংশনালিটি অফার করে, তাই এটি আস্তেহা রিলায় করার জিনিস নয় - কিন্তু এটি কোনো ভেরিয়েবল নির্দিষ্ট টাইপের ভ্যালু ধারণ করতে বাধ্য করার জন্য উপযোগী হতে পারে।
ব্যাশ ভেরিয়েবল ব্যবহার করা
একটি ভেরিয়েবল ব্যবহার করতে, এর সাথে $ (ডলার সাইন) প্রিফিক্স করুন। উদাহরণ:
#!/bin/bash MY_STRING="Hello Linux!" MY_FILE_PATH=/path/to/my/file.txt MY_NUMBER=4 echo $MY_STRING # স্ট্রিং ভেরিয়েবল প্রিন্ট করে touch $MY_FILE_PATH # দিয়ে गये পথে ফাইল তৈরি বা আপডেট করে MY_NUMBER=$(($MY_NUMBER+1)) # ম্যাথেমেটিক্যাল ফর্মুলা ইভ্যালুয়েট করে MY_NUMBER ১ বেড়ায়
touch কমান্ড স্ক্রিপ্টে ফাইল তৈরি বা আপডেট করার জন্য ব্যবহার করা হয়েছে।
ডবল ব্র্যাকেট (()) এর ব্যবহার লক্ষ্য করুন - এটি ব্যাশকে বলে স্টেটমেন্টটি ইভ্যালুয়েট করুন - অন্যথায়, MY_NUMBER স্ট্রিং ভ্যালু পাবে যাতে ক্যারেক্টার থাকবে "$MY NUMBER+1"।
স্ট্রিং-এ ভেরিয়েবল ব্যবহার
কখনো আপনাকে একটি স্ট্রিং-এ ভেরিয়েবলের ভ্যালু ব্যবহার করতে হতে পারে - উদাহরণস্বরূপ, ইউজার ইনপুট থেকে ফাইল পথ কালেক্ট করলে।
এক স্ট্রিং-এ ভেরিয়েবল ইনক্লুড করতে, সেটা অন্য স্ট্রিংর র্যাপড কোট-এ ব্যবহার করুন:
echo "This is my string: $MY_STRING"
লোকাল ভেরিয়েবল
Local ভেরিয়েবল শুধু সেই স্কোপে উপলব্ধ থাকে যেখানে সেটা তৈরি হয়েছে, অর্থাৎ সপেশাল ফাংশন বা লুপের ভিতরে যেখানে সেটা ডিফাইন করা হয়েছে।
#!/bin/bash function myFunction { local MY_STRING="This string is only available here, in this function" echo $MY_STRING } echo $MY_STRING # কিছুই প্রিন্ট করবে না, কারণ ভেরিয়েবলটি একটি ফাংশনের ভিতরে লোকালি ডিফাইন করা হয়েছিল