Ƙididdiga Bayanan Lissafi a Harshen Rubutun Shell - Sashe na V


Jama'a za ku ji daɗi, kuna fahimtar Rubutun Shell kuma ku rubuta su sosai, gwargwadon buƙatarku. Wannan shine rubutu na ƙarshe na wannan silsilar koyawa, inda za mu gudanar da wani ɗan taƙaitaccen aiki na Lissafi ta amfani da yaren rubutu. Labari huɗu na ƙarshe na jerin Rubutun Shell waɗanda suke a jere.

  1. Fahimtar Tushen Harshen Rubutun Shell na Linux - Sashe na I
  2. Rubutun Shell 5 don Sabbin Linux don Koyan Shirye-shiryen Shell - Sashe na II
  3. Tafi Ta Duniyar Rubutun BASH na Linux - Sashe na III
  4. Hanyoyin Lissafi na Linux Shell Programming – Sashe na IV

Bari mu fara da Fibonacci Series

Tsarin lambobi inda kowane lamba shine jimillar lambobi biyu da suka gabata. Silsilar ita ce 0, 1, 1, 2, 3, 5, 8…… Ta ma'ana, lambobi biyu na farko a cikin jerin Fibonccai sune 0 da 1.

#!/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
 chmod 755 Fibonacci.sh
 ./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

Kun saba da gaskiyar cewa kwamfuta ta fahimta kawai a cikin Tsarin Binaryar, watau, '0' da '1' kuma yawancin mu mun ji daɗin koyan jujjuya Decimal zuwa Binary. Yaya game da rubuta rubutun sassauƙa don wannan hadadden aiki.

#!/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 ; 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
 chmod 755 Decimal2Binary.sh
 ./Decimal2Binary.sh 1121

Decimal		Binary 
1121      	10001100001

Lura: Rubutun da ke sama yana karɓar shigarwa a lokacin aiki, wanda a bayyane yake taimako ne.

Da kyau umarnin inbuilt 'bc' na iya canza adadi zuwa binary a cikin rubutun layi ɗaya. Gudu, a tashar ku.

 echo "obase=2; NUM" | bc

Sauya 'NUM' tare da lambar, wacce kuke son canzawa daga Decimal zuwa Binary. Misali,

 echo "obase=2; 121" | bc 

1111001

Na gaba za mu rubuta rubutun da ke aiki daidai da rubutun da ke sama, Maida Ƙimar Binary zuwa Decimal.

#!/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
 chmod 755 Binary2Decimal.sh
 ./Binary2Decimal.sh

Enter a number : 
11 
3

Lura: Ana iya yin aikin da ke sama a cikin tashar ta amfani da umarnin 'bc' kamar yadda.

 echo "ibase=2; BINARY" | bc

Sauya 'BINARY' tare da lambar binary, watau,

 echo "ibase=2; 11010101" | bc 

213

Hakazalika zaka iya rubuta juzu'i daga octal, hexadecimal zuwa decimal da kuma mataimakinsa da kanka. Cimma sakamakon da ke sama a cikin tashar ta amfani da umarnin 'bc' shine.

 echo "obase=8; Decimal" | bc
 echo "obase=16; Decimal" | bc
 echo "ibase=8; Octal" | bc
 echo "ibase=16; Hexadecimal" | bc
 echo "ibase=2;obase=8 Binary" | bc

Wasu gwaje-gwajen Lambobi gama gari da ake amfani da su a cikin harshen rubutun harsashi tare da kwatance shine.

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

Wannan ke nan don wannan labarin, da jerin labarin. Wannan shine labarin ƙarshe na jerin Rubutun Shell kuma hakan baya nufin cewa babu wani labarin akan Harshen Rubutun da zai sake zuwa nan, yana nufin kawai koyaswar rubutun harsashi ya ƙare kuma duk lokacin da muka sami wani batu mai ban sha'awa wanda ya cancanci sani ko tambaya daga gare ku mutane, za mu yi farin cikin ci gaba da jerin daga nan.

Kasance cikin koshin lafiya, saurare kuma a haɗa ku zuwa Tecment. Ba da daɗewa ba zan zo da wani batu mai ban sha'awa, mutane za ku so ku karanta. Raba ra'ayoyinku masu mahimmanci a Sashen Sharhi.