BASHi programmeerimine

BC, et teha BASH-is täpsemaid aritmeetilisi toiminguid

BC, et teha BASH-is täpsemaid aritmeetilisi toiminguid
Põhikalkulaator, tuntud ka kui 'bc', on Linuxi käsurea utiliit, mida kasutatakse arenenud aritmeetika ja algebra sooritamiseks bashi skriptides. See pakub palju erinevaid matemaatilisi funktsioone, nagu siinus, koosinus, puutuja, looduslik logaritm bashis. Bash ei saa teha arenenud aritmeetilisi toiminguid, näiteks ujukite võrdlemine; seal tuleb bc kasuks. Käsule 'bc' eelnes UNIX-i utiliit 'dc' (töölaua kalkulaator). Selles õpetuses kasutame aritmeetiliste täpsemate toimingute tegemiseks käsku 'bc'.

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 “ ”| bc

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 ”| bc
1.9235862420

Alternatiivina võime kümnendväljundi saamiseks kasutada lippu -l ja bc.

[meiliga kaitstud]: ~ $ echo “$ num1 / $ num2” | bc -l
1.92358624207403750184

'Bc' käsku saab kasutada ka mooduli jagamiseks ja arvu võimsuse arvutamiseks bashi skriptides.

[meiliga kaitstud]: ~ $ kaja "10% 4" | bc
2
[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” | bc
1
[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” | bc
0
[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 -l
2

Negatiivse arvu ruutjuure arvutamisel viskab kest käitamisvea.

[meiliga kaitstud]: ~ $ echo “sqrt (-2)” | bc -l
Kä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.

Kuidas kasutada GameConquerori petumootorit Linuxis
Artikkel sisaldab juhendit GameConquerori petumootori kasutamise kohta Linuxis. Paljud kasutajad, kes mängivad Windowsis mänge, kasutavad rakendust „C...
Parimad Linuxi mängukonsooli emulaatorid
Selles artiklis loetletakse Linuxi jaoks saadaval olev populaarne mängukonsooli emuleerimise tarkvara. Emuleerimine on tarkvara ühilduvuse kiht, mis j...
Parimad mängude jaoks mõeldud Linuxi distrod 2021. aastal
Linuxi operatsioonisüsteem on oma algsest, lihtsast, serveripõhisest välimusest kaugele jõudnud. See operatsioonisüsteem on viimastel aastatel tohutul...