Aritmeetiliste põhitoimingute sooritamine
Lihtseid aritmeetilisi toiminguid, nagu liitmine, lahutamine, jagamine ja korrutamine, saab teha käsuga 'bc'. Süntaks lihtsate binaarsete operaatorite rakendamiseks bashis käsuga 'bc' on järgmine.
[kaitstud meiliga]: ~ $ echo “Selles osas kasutame lihtsate aritmeetiliste toimingute tegemiseks käsku 'bc'.
[kaitstud meiliga]: ~ $ num1 = 2.35322 5[meiliga kaitstud]: ~ $ num2 = 1.223353
[meiliga kaitstud]: ~ $ echo “$ num1 + $ num2” | bc
3.576578
[meiliga kaitstud]: ~ $ echo “$ num1- $ num2” | bc
1.129872
[meiliga kaitstud]: ~ $ echo “$ num1 * $ num2” | bc
2.878824
[meiliga kaitstud]: ~ $ echo “$ num1 / $ num2” | bc
1
Ülaltoodud näites saime jagamise ajal tulemuse ilma kümnendkohtadeta. Tulemuse saamiseks kuni 'n' kümnendkohani peame määrama skaala väärtuseks n, nagu on näidatud järgmises näites.
[meiliga kaitstud]: ~ $ echo “skaala = 10; $ num1 / $ num2 ”| bc1.9235862420
Alternatiivina võime kümnendväljundi saamiseks kasutada lippu -l ja bc.
[meiliga kaitstud]: ~ $ echo “$ num1 / $ num2” | bc -l1.92358624207403750184
'Bc' käsku saab kasutada ka mooduli jagamiseks ja arvu võimsuse arvutamiseks bashi skriptides.
[meiliga kaitstud]: ~ $ kaja "10% 4" | bc2
[meiliga kaitstud]: ~ $ kaja "10 ^ 2" | bc
100
Täiustatud aritmeetiliste toimingute tegemine
Siiani oleme käsku 'bc' teinud mõne põhilise aritmeetilise toimingu sooritamiseks, näiteks liitmine, lahutamine, korrutamine jne., nüüd; selles osas kasutame käsku 'bc' mõnede täpsemate aritmeetiliste toimingute tegemiseks. Arutleme selle üle, kuidas saaksime bash-is kasutada võrdlusoperaatoreid, loogilisi või booleanoperaatoreid, täiustatud matemaatilisi funktsioone ja tingimuslauseid käsuga 'bc'.
Võrdlusoperaatorid
Võrdlusoperaatorid võtavad kaks numbrit, võrdlevad neid ja naasevad seejärel 1 või 0 sõltuvalt võrdlusest. Kui võrdlus vastab tõele, siis tulemus on TÕENE (1); muidu on VALE (0). Järgnevalt on toodud mõned näited võrdlusoperaatoritest.
- num1> num2: See võrdlus tuleb tagasi 1 kui num1 on suurem kui num2.
- num1 < num2: Tulemuseks saab 1 kui num1 on väiksem kui num2.
- num1 <= num2: Tulemuseks saab 1 kui num1 on väiksem või võrdne num2.
- num1> = num2: Tulemuseks saab 1 kui num1 on suurem või võrdne num2.
- num1 == num2: Tulemuseks saab 1 kui num1 on võrdne num2.
- num1 != num2: Tulemuseks saab 1 kui mõlemad numbrid pole võrdsed.
Järgnevalt on toodud mõned näited võrdlusoperaatoritest, mida kasutatakse käsuga 'bc'.
[meiliga kaitstud]: ~ $ kaja “5 == 5” | bc1
[meiliga kaitstud]: ~ $ kaja “4!= 4 ”| bc
0
[meiliga kaitstud]: ~ $ kaja “2> 5” | bc
0
[meiliga kaitstud]: ~ $ kaja “4<=4” | bc
1
Boole'i operaatorid
Boole'i või loogikaoperaatoreid kasutatakse tingimuslausetes mõne loogilise otsuse tegemiseks. Järgnevad kolm peamist loogilist operaatorit.
- stat1 && stat2: See naaseb 1 kui mõlemad väited on nullist erinev.
- stat1 || stat2: See naaseb 1 kui mõni väidetest on nullist erinev.
- ! stat: See naaseb 1 kui väide on nullist erinev ja vastupidi.
Järgmised näited illustreerivad loogiliste operaatorite kasutamist käsuga 'bc'.
[meiliga kaitstud]: ~ $ kaja “-5 && 0” | bc0
[meiliga kaitstud]: ~ $ echo “-1 || 0 ”| bc
1
[meiliga kaitstud]: ~ $ echo “! 0 ”| bc
1
Tingimuslikud avaldused
Tingimuslauseid kasutatakse konkreetsete käskude täitmiseks sõltuvalt rakendatavast tingimusest. Tingimuslauses rakendatud tingimus hõlmab loogilisi ja võrdlusoperaatoreid. Järgmine on näide tingimuslausetest käsuga 'bc'.
[kaitstud meiliga]: ~ $ a = 15[kaitstud meiliga]: ~ $ b = 20
[meiliga kaitstud]: ~ $ echo 'kui (a> b) printida "a on suurem" muidu printida "b on suurem"' | bc -l
b on suurem
Ülaltoodud näites kontrollib lause, kas a on suurem kui b või mitte. Kui a on suurem kui b, trükitakse see “a is nagyobb”; muidu trükitakse see „b on suurem."Ülalolevas näites võime rakendada mis tahes tingimust, kasutades tõeväärtuse ja võrdlusoperaatoreid.
Matemaatilised funktsioonid
'Bc' käsul on ka mõned sisseehitatud matemaatilised funktsioonid, mida saame kasutada neid määratlemata. Järgnevalt on toodud mõned põhifunktsioonid, mida kasutatakse käsuga 'bc' bashis.
- s (x): tagastab x siinuse, kus x on radiaanides
- c (x): tagastab x koosinuse, kus x on radiaanides
- a (x): tagastab x arktangentsi ja tulemus on radiaanides
- sqrt (x): tagastab x ruutjuure. Kui x on negatiivne, põhjustab see käitustõrke
- l (x): tagastab x loomuliku logi.
Neid funktsioone saab kasutada käsuga 'bc', nagu on näidatud järgmistes näidetes.
[kaitstud meiliga]: ~ $ pi = 3.1415[meiliga kaitstud]: ~ $ kaja "s ($ pi / 2)" | bc -l
1
[meiliga kaitstud]: ~ $ kaja "c ($ pi / 2)" | bc -l
0
[meiliga kaitstud]: ~ $ kaja "a (1)" | bc -l
0.7854
Numbri ruutjuure saab bash-is arvutada käsuga 'bc', nagu on näidatud järgmisel joonisel.
[meiliga kaitstud]: ~ $ echo “sqrt (4)” | bc -l2
Negatiivse arvu ruutjuure arvutamisel viskab kest käitamisvea.
[meiliga kaitstud]: ~ $ echo “sqrt (-2)” | bc -lKäitusaja viga (func = (main), adr = 4): negatiivse arvu ruutjuur
Numbri naturaallogaritmi saab bash-is arvutada käsuga 'bc' järgmiselt.
[meiliga kaitstud]: ~ $ kaja “l (2)” | bc -l.69314718055994530941
Järeldus
Automaatikaskriptide kirjutamisel bashis vajame mõnikord käskude täitmiseks täiustatud matemaatilisi funktsioone ja loogilisi operaatoreid. Käsk bc pakub palju arenenud matemaatilisi funktsioone ja operaatoreid kõrgetasemeliste aritmeetiliste arvutuste tegemiseks. Selles õpetuses räägiti käsust 'bc', et teha bashis täpsemaid aritmeetilisi toiminguid.