Pagkalkulo sa mga Ekspresyong Matematika sa Shell Scripting Language - Bahin V


Kamong mga Tawo mahimong komportable, makasabut sa Shell Scripts ug maayo nga pagsulat niini, sumala sa imong panginahanglan. Kini ang katapusan nga post sa kini nga serye sa panudlo, diin maghimo kami usa ka gamay nga komplikado nga mga Operasyon sa Matematika gamit ang sinultian nga script. Ang kataposang upat ka artikulo sa Shell Scripting series nga kronolohiko.

  1. Sabta ang Basic Linux Shell Scripting Language Tips – Part I
  2. 5 Shell Scripts para sa Linux Newbies nga Makakat-on sa Shell Programming – Part II
  3. Paglayag Sa Kalibutan sa Linux BASH Scripting – Bahin III
  4. Mathematical Aspeto sa Linux Shell Programming – Bahin IV

Magsugod ta sa Fibonacci Series

Usa ka sumbanan sa mga numero diin ang matag numero mao ang sumada sa duha ka nag-una nga mga numero. Ang serye kay 0, 1, 1, 2, 3, 5, 8…… Sa kahulugan, ang unang duha ka numero sa Fibonccai sequence mao ang 0 ug 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

Pamilyar ka sa kamatuoran nga ang kompyuter nakasabut lamang sa Binary Format, i.e., '0' ug '1' ug kadaghanan kanato nalingaw sa pagkat-on sa pagkakabig sa Decimal ngadto sa Binary. Giunsa pagsulat ang usa ka yano nga script alang niining komplikado nga operasyon.

#!/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

Mubo nga sulat: Ang script sa ibabaw modawat sa Input sa oras sa pagdagan, nga klaro nga usa ka tabang.

Maayo ang inbuilt nga 'bc' nga mando mahimo’g mabag-o ang usa ka decimal ngadto sa binary sa usa ka script sa usa ka linya. Dagan, sa imong terminal.

 echo "obase=2; NUM" | bc

Ilisan ang 'NUM' sa numero, nga gusto nimong i-convert gikan sa Decimal ngadto sa Binary. Pananglitan,

 echo "obase=2; 121" | bc 

1111001

Sunod magsulat kami usa ka script nga naglihok nga sukwahi sa script sa ibabaw, Pag-convert sa Binary Values sa 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

Mubo nga sulat: Ang naa sa ibabaw nga function mahimong ipahigayon sa terminal gamit ang 'bc' command as.

 echo "ibase=2; BINARY" | bc

Ilisan ang 'BINARY' sa Binary nga numero, nga mao,

 echo "ibase=2; 11010101" | bc 

213

Sa samang paagi mahimo nimong isulat ang pagkakabig gikan sa octal, hexadecimal ngadto sa decimal ug vice-versa sa imong kaugalingon. Ang pagtuman sa resulta sa ibabaw sa terminal gamit ang 'bc' nga sugo mao.

 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

Pipila sa Common Numeric nga mga pagsulay nga gigamit sa shell scripting nga pinulongan nga adunay paghulagway mao ang.

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

Kana ra para sa kini nga artikulo, ug ang serye sa artikulo. Kini ang kataposang artikulo sa Shell Script Series ug wala kini magpasabot nga wala nay artikulo sa Scripting language nga ania pag-usab, nagpasabot lamang kini nga ang shell scripting tutorial nahuman na ug sa matag higayon nga makakita kami og usa ka makapaikag nga hilisgutan nga angay mahibaloan o usa ka pangutana gikan kaninyong mga tawo, malipay kami nga ipadayon ang serye gikan dinhi.

Magpabiling himsog, tuned ug konektado sa Tecmint. Sa dili madugay moabut ako uban ang lain nga makapaikag nga hilisgutan, ganahan kamong magbasa. Ipakigbahin ang imong bililhon nga mga hunahuna sa Seksyon sa Komento.