গণিত সহজ, ব্যাশ স্ক্রিপ্টিং সহজ, তাই ব্যাশ/শেল স্ক্রিপ্টগুলিতে গণিত/পাটিগণিত সম্পাদন করাও সহজ হওয়া উচিত। এটা। এটি কীভাবে করবেন তা এখানে।
পূর্ণসংখ্যার সাথে কাজ করা
Bash এর অন্তর্নির্মিত পাটিগণিত শুধুমাত্র পূর্ণসংখ্যা (সম্পূর্ণ সংখ্যা) মান পরিচালনা করতে পারে। আপনি যদি একটি অ-পূর্ণসংখ্যা মান সহ একটি পরিবর্তনশীল ঘোষণা করার চেষ্টা করেন:
declare -i e=2.5
আপনি নিম্নলিখিত দেখতে পাবেন:
bash: declare: 2.5: syntax error: invalid arithmetic operator (error token is ".5")
অ-পূর্ণসংখ্যার সাথে কাজ করার জন্য, আপনার গণনা সম্পাদন করার জন্য আপনাকে একটি বাহ্যিক প্রোগ্রাম ব্যবহার করতে হবে - তবে প্রথমে, এখানে পূর্ণসংখ্যার সাথে কাজ করার জন্য বিল্ট-ইন ব্যাশ গাণিতিক কীভাবে ব্যবহার করতে হয়।
পরিবর্তনশীল ঘোষণা ব্যবহার করা
যদি আপনার ভেরিয়েবলগুলিকে ডিক্লেয়ার ব্যবহার করে পূর্ণসংখ্যা হিসাবে ঘোষণা করা হয় বিবৃতি, আপনি কোন বিশেষ বিবেচনা ছাড়াই পাটিগণিত সম্পাদন করতে পারেন:
# Declaring variables as integers declare -i x=4 declare -i y=2 # Performing arithmetic with integer variables result=x/y echo $result
এটি ফিরে আসবে:
2
যদি ভেরিয়েবলগুলিকে পূর্ণসংখ্যা হিসাবে ঘোষণা করা হয় তবে মূল্যায়নের জন্য গাণিতিক বিবৃতিটিকে বন্ধনীতে মোড়ানোর দরকার নেই৷
ডাবল বন্ধনী/বন্ধনী ব্যবহার করা
যদি আপনার ভেরিয়েবলগুলিকে বিশেষভাবে পূর্ণসংখ্যা হিসাবে ঘোষণা করা না হয়, স্ক্রিপ্ট প্যারামিটার হিসাবে পাস করা হয় বা একটি প্রোগ্রাম থেকে আউটপুট করা হয়, তবে সেগুলিকে ডিফল্টরূপে স্ট্রিং হিসাবে গণ্য করা হবে৷
ব্যাশের পাটিগণিতের স্ট্রিংগুলির সাথে মোকাবিলা করার ক্ষমতা রয়েছে – কিন্তু শুধুমাত্র যদি অভিব্যক্তিটি ডবল বন্ধনী ব্যবহার করে একটি গাণিতিক অভিব্যক্তি হিসাবে ফ্ল্যাগ আপ করা হয় . নিচের উদাহরণটি দেখুন:
x = 6 ((y=$x+3)) echo $y
উপরের ব্যাশ স্ক্রিপ্ট স্নিপেটটি অভিব্যক্তিটির সঠিক মূল্যায়ন করবে:
9
…যেমন বন্ধনীযুক্ত গাণিতিক অভিব্যক্তিটিকে স্ট্রিং হিসাবে বিবেচনা করার পরিবর্তে সংখ্যা সহ ভেরিয়েবল ধারণ করে সঠিকভাবে ব্যাখ্যা করা হয়েছে।
বন্ধনী ছাড়া:
y=$x+3
আপনি আউটপুট পাবেন:
6+3
অভিব্যক্তিটিকে দুটি স্ট্রিং যুক্ত করা হিসাবে গণ্য করা হবে এবং মূল্যায়ন করা হবে না৷
সমর্থিত গাণিতিক অপারেটর
ব্যাশ বিল্ট-ইন গাণিতিক নিম্নলিখিত অপারেটরগুলিকে সমর্থন করে:
+ | সংযোজন |
– | বিয়োগ |
++ | বৃদ্ধি |
— | হ্রাস |
* | গুণ |
/ | বিভাগ |
% | অবশিষ্ট |
** | ব্যাখ্যা |
বুলিয়ান এবং পাটিগণিত
বুলিয়ান অপারেটর ব্যবহার করার সময় ডাবল বন্ধনীও দেখা যায়, কারণ মূল্যায়ন করা অভিব্যক্তিটি 0 বা 1 প্রদান করবে:
if (( x > y )); then echo "x is greater than y" fiথেকে বড়
এখানে ব্যাশ বুলিয়ান অপারেশন সম্পর্কে আরও দেখুন
দশমিক মান নিয়ে কাজ করা
bc ব্যবহার করা কমান্ড
আগে যেমন নিবন্ধে দেখানো হয়েছে, অ-পূর্ণসংখ্যা মানের সাথে ব্যাশ গাণিতিক ব্যবহার করলে একটি ত্রুটি দেখা দেবে।
bc কমান্ড দশমিক মান (এবং আরো জটিল গণিত) পরিচালনা করতে পারে। এখানে সিনট্যাক্স:
bc OPTIONS FILE
কোথায়:
- বিকল্পগুলি হল বিকল্পগুলির একটি তালিকা (বিকল্পগুলির সম্পূর্ণ তালিকার জন্য এখানে দেখুন)
- ফাইল হল একটি টেক্সট ফাইলের পাথ যেখানে পাটিগণিত সমাধান করা হবে।
হিসাবে bc এতে পাইপ করা ইনপুট গ্রহণ করবে, আপনাকে একটি ফাইলে আপনার সমীকরণ সংরক্ষণ করতে হবে না; আপনি সরাসরি কনসোল থেকে এটি পাইপ করতে পারেন:
echo "2.32+3.45" | bc
…যা সঠিক উত্তর দেবে:
5.77
কমান্ড-লাইন অ্যাপ্লিকেশন ইনপুট এবং আউটপুট পাইপিং এবং রিডাইরেক্ট করার সম্পূর্ণ রানডাউন এখানে রয়েছে।
আপনি রান করে সম্পূর্ণ বিসি ব্যবহারকারী ম্যানুয়াল দেখতে পারেন:
man bc
বিসি কমান্ডের জন্য জটিল গণিতের জন্য অনেক উন্নত সিনট্যাক্স রয়েছে, যা ব্যবহারকারীর ম্যানুয়ালে বিস্তারিতভাবে বর্ণিত হয়েছে।