Mathematesch Ausdréck an der Shell Skriptsprooch berechnen - Deel V
Dir Leit géife sech bequem fillen, Shell Scripten verstoen a se fléissend schreiwen, no Äre Bedierfnesser. Dëst ass de leschte Post vun dëser Tutorial Serie, wou mir e bësse komplex mathematesch Operatioune mat der Skriptsprooch ausféieren. Déi lescht véier Artikele vun der Shell Scripting Serie déi chronologesch sinn.
- Basis Linux Shell Skriptsprooch Tipps verstoen - Deel I
- 5 Shell Scripte fir Linux Newbies fir Shell Programméierung ze léieren - Deel II
- Segelen duerch d'Welt vu Linux BASH Scripting - Deel III
- Mathematesche Aspekt vu Linux Shell Programméierung - Deel IV
Loosst eis mat der Fibonacci Serie ufänken
E Muster vun Zuelen wou all Zuel d'Zomm vun zwou virdrun Zuelen ass. D'Serie ass 0, 1, 1, 2, 3, 5, 8... Per Definitioun sinn déi éischt zwou Zuelen an der Fibonccai Sequenz 0 an 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
Dir sidd Gewunnecht mat der Tatsaach datt de Computer nëmmen am Binäre Format versteet, dh '0' an '1' an déi meescht vun eis hunn d'Konversioun vun Dezimal op Binär geléiert. Wéi wier et mat engem einfache Skript fir dës komplex Operatioun ze schreiwen.
#!/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
Notiz: Dat uewe genannte Skript akzeptéiert Input bei der Lafzäit, wat offensichtlech eng Hëllef ass.
Gutt den inbuilt 'bc' Kommando kann en Dezimal op binär an engem Skript vun enger eenzeger Zeil konvertéieren. Run, bei Ärem Terminal.
echo "obase=2; NUM" | bc
Ersetzen 'NUM' mat der Nummer, déi Dir vun Dezimal op Binär wëllt konvertéieren. Zum Beispill,
echo "obase=2; 121" | bc 1111001
Als nächst wäerte mir e Skript schreiwen deen just vis-à-vis vum uewe genannte Skript funktionnéiert, Binär Wäerter op Dezimal ëmsetzen.
#!/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
Bemierkung: Déi uewe genannte Funktioun kann am Terminal ausgefouert ginn mam 'bc' Kommando als.
echo "ibase=2; BINARY" | bc
Ersetzen 'BINARY' mat der binärer Nummer, nämlech,
echo "ibase=2; 11010101" | bc 213
Ähnlech kënnt Dir d'Konversioun vun oktal, hexadezimal op Dezimal a vice-versa selwer schreiwen. D'Erreeche vum uewe genannte Resultat am Terminal mam 'bc' Kommando ass.
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
E puer vun de gemeinsame numereschen Tester, déi an der Shell-Skriptsprooch mat Beschreiwung benotzt ginn, ass.
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
Dat ass alles fir dësen Artikel, an d'Artikelserie. Dëst ass de leschten Artikel vun der Shell Script Series an et heescht net datt keen Artikel iwwer Scripting Sprooch erëm hei wäert sinn, et heescht nëmmen datt d'Shell Scripting Tutorial eriwwer ass a wa mir en interessanten Thema fannen dat wäertvoll ass ze wëssen oder eng Ufro vun Iech Leit, mir wäerten frou d'Serie vun hei aus weiderzemaachen.
Bleift gesond, ofgestëmmt a verbonne mat Tecmint. Ganz geschwënn kommen ech mat engem aneren interessanten Thema, Dir wäert gär liesen. Deelt Är wäertvoll Gedanken an der Kommentarsektioun.