Kukokotoa Maneno ya Hisabati katika Lugha ya Maandishi ya Shell - Sehemu ya V
Ninyi Watu mngejisikia raha, kuelewa Maandishi ya Shell na kuyaandika kwa ufasaha, kulingana na hitaji lako. Hili ni chapisho la mwisho la mfululizo huu wa mafunzo, ambapo tutakuwa tukifanya Operesheni changamano cha Hisabati kwa kutumia lugha ya uandishi. Nakala nne za mwisho za safu ya Maandishi ya Shell ambayo yanafuatana.
- Elewa Vidokezo vya Msingi vya Lugha ya Uandishi wa Shell ya Linux - Sehemu ya I
- Hati 5 za Shell za Linux Wapya Kujifunza Utayarishaji wa Shell - Sehemu ya II
- Kusafiri Katika Ulimwengu wa Linux BASH Scripting - Sehemu ya III
- Kipengele cha Hisabati cha Upangaji wa Linux Shell - Sehemu ya IV
Wacha tuanze na Msururu wa Fibonacci
Mchoro wa nambari ambapo kila nambari ni jumla ya nambari mbili zinazotangulia. Msururu ni 0, 1, 1, 2, 3, 5, 8…… Kwa ufafanuzi, nambari mbili za kwanza katika mfuatano wa Fibonccai ni 0 na 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
Unafahamu ukweli kwamba kompyuta inaelewa tu katika Umbizo la Nambari, yaani, '0' na '1' na wengi wetu tumefurahia kujifunza ubadilishaji wa Desimali hadi Nambari. Vipi kuhusu kuandika hati rahisi kwa operesheni hii ngumu.
#!/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
Kumbuka: Hati iliyo hapo juu inakubali Ingizo wakati wa kukimbia, ambayo ni msaada.
Kweli, amri ya 'bc' iliyojengwa inaweza kubadilisha nambari kuwa ya binary katika hati ya laini moja. Endesha, kwenye terminal yako.
echo "obase=2; NUM" | bc
Badilisha ‘NUM’ na nambari, ambayo ungependa kubadilisha kutoka Desimali hadi Nambari. Kwa mfano,
echo "obase=2; 121" | bc 1111001
Ifuatayo tutakuwa tukiandika hati ambayo hufanya kazi kinyume kabisa na hati iliyo hapo juu, Kubadilisha Maadili ya Binary kuwa Desimali.
#!/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
Kumbuka: Kazi iliyo hapo juu inaweza kufanywa kwa terminal kwa kutumia amri ya 'bc' kama.
echo "ibase=2; BINARY" | bc
Badilisha 'BINARY' na nambari ya binary, yaani.,
echo "ibase=2; 11010101" | bc 213
Vile vile unaweza kuandika ubadilishaji kutoka octal, hexadecimal hadi desimali na kinyume chake wewe mwenyewe. Kukamilisha matokeo hapo juu kwa terminal kutumia 'bc'amri ni.
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
Baadhi ya majaribio ya Nambari ya Kawaida yanayotumika katika lugha ya uandishi wa ganda na maelezo ni.
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
Hiyo ni yote kwa nakala hii, na safu ya nakala. Haya ni makala ya mwisho ya Mfululizo wa Hati ya Shell na haimaanishi kuwa hakuna makala kuhusu lugha ya Hati itakayopatikana tena, inamaanisha tu kwamba mafunzo ya uandishi wa ganda yamekamilika na wakati wowote tunapopata mada ya kuvutia inayostahili kujua au swali kutoka kwenu watu, tutafurahi kuendelea na mfululizo kutoka hapa.
Kuwa na afya njema, usikivu na uunganishwe na Tecmint. Karibuni sana nitakuja na mada nyingine ya kuvutia, nyinyi watu mtapenda kusoma. Shiriki mawazo yako muhimu katika Sehemu ya Maoni.