কম্পিউটার

শেল স্ক্রিপ্টিং ল্যাঙ্গুয়েজে গাণিতিক অভিব্যক্তি গণনা করা – পার্ট V

আপনি লোকেরা স্বাচ্ছন্দ্য বোধ করবেন, শেল স্ক্রিপ্টগুলি বুঝতে পারবেন এবং আপনার প্রয়োজন অনুযায়ী সাবলীলভাবে লিখুন। এটি এই টিউটোরিয়াল সিরিজের শেষ পোস্ট, যেখানে আমরা একটু জটিল গাণিতিক ক্রিয়াকলাপ করব স্ক্রিপ্টিং ভাষা ব্যবহার করে। শেল স্ক্রিপ্টিং-এর শেষ চারটি নিবন্ধ সিরিজ যা কালানুক্রমিকভাবে।

শেল স্ক্রিপ্টিং ল্যাঙ্গুয়েজে গাণিতিক অভিব্যক্তি গণনা করা – পার্ট V
  1. বেসিক লিনাক্স শেল স্ক্রিপ্টিং ভাষা টিপস বুঝুন – অংশ I
  2. শেল প্রোগ্রামিং শেখার জন্য লিনাক্স নতুনদের জন্য 5 শেল স্ক্রিপ্ট – পার্ট II
  3. লিনাক্স BASH স্ক্রিপ্টিং-এর জগতের মধ্য দিয়ে যাত্রা – তৃতীয় অংশ
  4. লিনাক্স শেল প্রোগ্রামিং এর গাণিতিক দিক – চতুর্থ অংশ

ফিবোনাচি সিরিজ দিয়ে শুরু করা যাক

সংখ্যার একটি প্যাটার্ন যেখানে প্রতিটি সংখ্যা দুটি পূর্ববর্তী সংখ্যার যোগফল। সিরিজটি হল 0 , 1 , 1 , 2 , 3 , 5 , 8 …… সংজ্ঞা অনুসারে, Fibonccai-এর প্রথম দুটি সংখ্যা ক্রম হল 0 এবং 1।

স্ক্রিপ্ট 1:Fibonacci.sh
#!/bin/bash
echo "How many numbers do you want of Fibonacci series ?" 
  read total 
  x=0 
  y=1 
  i=2 
  echo "Fibonacci Series up to $total terms :: " 
  echo "$x" 
  echo "$y" 
  while [ $i -lt $total ] 
  do 
      i=`expr $i + 1 ` 
      z=`expr $x + $y ` 
      echo "$z" 
      x=$y 
      y=$z 
  done
নমুনা আউটপুট
[[email protected] ~]# chmod 755 Fibonacci.sh
[[email protected] ~]# ./Fibonacci.sh

How many numbers do you want of Fibonacci series ? 
10 
Fibonacci Series up to 10 terms :: 
0 
1 
1 
2 
3 
5 
8 
13 
21 
34

Fibonacci.sh ডাউনলোড করুন

আপনি এই সত্যের সাথে পরিচিত যে কম্পিউটার শুধুমাত্র বাইনারি ফর্ম্যাটেই বোঝা যায়, অর্থাৎ, '0 ' এবং '1 ' এবং আমাদের অধিকাংশই ডেসিমেল-এর রূপান্তর শিখতে উপভোগ করেছি বাইনারিতে . এই জটিল ক্রিয়াকলাপের জন্য একটি সাধারণ স্ক্রিপ্ট লেখার বিষয়ে কীভাবে।

স্ক্রিপ্ট 2:Decimal2Binary.sh
#!/bin/bash 

for ((i=32;i>=0;i--)); do 
        r=$(( 2**$i)) 
        Probablity+=( $r  ) 
done 

[[ $# -eq 0 ]] &echo -en "Decimal\t\tBinary\n" 
for input_int in [email protected]; do 
s=0 
test ${#input_int} -gt 11 &printf "%-10s\t" "$input_int" 

        for n in ${Probablity[@]}; do 

                if [[ $input_int -lt ${n} ]]; then 
                        [[ $s = 1 ]] && printf "%d" 0 
                else 
                        printf "%d" 1 ; s=1 
                        input_int=$(( $input_int - ${n} )) 
                fi 
        done 
echo -e 
done
নমুনা আউটপুট
[[email protected] ~]# chmod 755 Decimal2Binary.sh
[[email protected] ~]# ./Decimal2Binary.sh 1121

Decimal		Binary 
1121      	10001100001

দ্রষ্টব্য :উপরের স্ক্রিপ্ট রান টাইমে ইনপুট গ্রহণ করে, যা স্পষ্টতই একটি সাহায্য।

Decimal2Binary.sh ডাউনলোড করুন

আচ্ছা অন্তর্নির্মিত ‘bc ' কমান্ড একটি দশমিক রূপান্তর করতে পারে বাইনারিতে একক লাইনের স্ক্রিপ্টে। চালান, আপনার টার্মিনালে।

[[email protected] ~]# echo "obase=2; NUM" | bc

'NUM প্রতিস্থাপন করুন ' নম্বর সহ, যেটিকে আপনি দশমিক থেকে রূপান্তর করতে চান বাইনারিতে . উদাহরণস্বরূপ,

[[email protected] ~]# echo "obase=2; 121" | bc 

1111001

এরপরে আমরা একটি স্ক্রিপ্ট লিখব যা উপরের স্ক্রিপ্টের ঠিক বিপরীতে কাজ করে, বাইনারি মান রূপান্তর করা দশমিক পর্যন্ত .

স্ক্রিপ্ট 3:Binary2Decimal.sh
#!/bin/bash 
echo "Enter a number :" 
read Binary 
if [ $Binary -eq 0 ] 
then 
echo "Enter a valid number " 
else 
while [ $Binary -ne 0 ] 
do 
Bnumber=$Binary 
Decimal=0 
power=1 
while [ $Binary -ne 0 ] 
do 
rem=$(expr $Binary % 10 ) 
Decimal=$((Decimal+(rem*power))) 
power=$((power*2)) 
Binary=$(expr $Binary / 10) 
done 
echo  " $Decimal" 
done 
fi
নমুনা আউটপুট
[[email protected] ~]# chmod 755 Binary2Decimal.sh
[[email protected] ~]# ./Binary2Decimal.sh

Enter a number : 
11 
3

দ্রষ্টব্য :উপরের ফাংশনটি ‘bc ব্যবহার করে টার্মিনালে সঞ্চালিত হতে পারে ' কমান্ড হিসাবে৷

[[email protected] ~]# echo "ibase=2; BINARY" | bc

'BINARY প্রতিস্থাপন করুন বাইনারি নম্বর সহ, যেমন.,

[[email protected] ~]# echo "ibase=2; 11010101" | bc 

213

Binary2Decimal.sh ডাউনলোড করুন

একইভাবে আপনি অক্টাল থেকে রূপান্তর লিখতে পারেন , হেক্সাডেসিমেল দশমিক থেকে এবং তদ্বিপরীত নিজেকে. 'bc ব্যবহার করে টার্মিনালে উপরের ফলাফলটি সম্পাদন করা ' কমান্ড হল৷

দশমিক থেকে অক্টাল
[[email protected] ~]# echo "obase=8; Decimal" | bc
দশমিক থেকে হেক্সাডেসিমেল
[[email protected] ~]# echo "obase=16; Decimal" | bc
অক্টাল থেকে দশমিক
[[email protected] ~]# echo "ibase=8; Octal" | bc
হেক্সাডেসিমেল থেকে দশমিক
[[email protected] ~]# echo "ibase=16; Hexadecimal" | bc
বাইনারি থেকে অক্টাল
[[email protected] ~]# echo "ibase=2;obase=8 Binary" | bc

কিছু সাধারণ সংখ্যাসূচক বর্ণনা সহ শেল স্ক্রিপ্টিং ভাষায় ব্যবহৃত পরীক্ষাগুলি হল।

Test : INTEGER1 -eq INTEGER2
Meaning: INTEGER1 is equal to INTEGER2
Test : INTEGER1 -ge INTEGER2
Meaning: INTEGER1 is greater than or equal to INTEGER2
Test: INTEGER1 -gt INTEGER2
Meaning: INTEGER1 is greater than INTEGER2
Test:INTEGER1 -le INTEGER2
Meaning: INTEGER1 is less than or equal to INTEGER2
Test: INTEGER1 -lt INTEGER2
Meaning: INTEGER1 is less than INTEGER2
Test: INTEGER1 -ne INTEGER2
Meaning: INTEGER1 is not equal to INTEGER2

এই নিবন্ধটি এবং নিবন্ধ সিরিজের জন্য এটিই। এটি শেল স্ক্রিপ্ট সিরিজের শেষ নিবন্ধ এবং এর মানে এই নয় যে স্ক্রিপ্টিং ভাষার উপর আর কোন নিবন্ধ এখানে থাকবে না, এর মানে শুধুমাত্র শেল স্ক্রিপ্টিং টিউটোরিয়াল শেষ হয়ে গেছে এবং যখনই আমরা জানার মতো একটি আকর্ষণীয় বিষয় বা আপনার কাছ থেকে একটি প্রশ্ন খুঁজে পাই, তখন থেকে সিরিজটি চালিয়ে যেতে আমরা খুশি হব এখানে।

সুস্থ থাকুন, টিউন করুন এবং Tecmint এর সাথে সংযুক্ত থাকুন . খুব শীঘ্রই আমি আরেকটি মজার বিষয় নিয়ে আসছি, আপনারা পড়তে ভালোবাসবেন। মন্তব্য বিভাগে আপনার মূল্যবান চিন্তা শেয়ার করুন .


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

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

  3. কাস্টম শেল ফাংশন এবং লাইব্রেরিগুলি কীভাবে লিখবেন এবং ব্যবহার করবেন

  4. 5টি ব্যবহারিক উদাহরণ সহ ব্যাশ স্ক্রিপ্টিং ভূমিকা টিউটোরিয়াল