Atliekant pagrindines aritmetines operacijas
Paprastas aritmetines operacijas, tokias kaip susiejimas, atimimas, padalijimas ir dauginimas, galima atlikti naudojant komandą „bc“. Sintaksė paprastiems dvejetainiams operatoriams „bash“ naudojant „bc“ komandą yra tokia.
[apsaugotas el. paštas]: ~ $ echo “Šiame skyriuje naudosime komandą „bc“, kad atliktume paprastas aritmetines operacijas.
[apsaugotas el. paštas]: ~ $ num1 = 2.35322 5[apsaugotas el. paštas]: ~ $ num2 = 1.223353
[apsaugotas el. paštas]: ~ $ echo „$ num1 + $ num2“ | bc
3.576578
[apsaugotas el. paštas]: ~ $ echo „$ num1- $ num2“ | bc
1.129872 m
[apsaugotas el. paštas]: ~ $ echo „$ num1 * $ num2“ | bc
2.878824
[apsaugotas el. paštas]: ~ $ echo „$ num1 / $ num2“ | bc
1
Ankstesniame pavyzdyje atlikdami dalijimą, mes gavome rezultatą be dešimtainių taškų. Norėdami gauti rezultatą iki „n“ dešimtainio kablelio, turime nustatyti skalės vertę į „n“, kaip parodyta kitame pavyzdyje.
[apsaugotas el. paštas]: ~ $ echo “skalė = 10; $ num1 / $ num2 “| bc1.9235862420
Arba galime naudoti „-l“ vėliavą ir „bc“ komandą, kad gautume dešimtainę išvestį.
[apsaugotas el. paštas]: ~ $ echo „$ num1 / $ num2“ | bc -l1.92358624207403750184
„Bc“ komanda taip pat gali būti naudojama modulio dalijimui atlikti ir skaičiaus galiai apskaičiuoti pagal bash scenarijus.
[apsaugotas el. paštas]: ~ $ aidas „10% 4“ | bc2
[apsaugotas el. paštas]: ~ $ echo „10 ^ 2“ | bc
100
Išplėstinių aritmetinių operacijų atlikimas
Iki šiol naudojome komandą „bc“, kad atliktume kai kurias pagrindines aritmetines operacijas, pvz., Susiejimą, atimimą, dauginimą ir kt., dabar; šiame skyriuje naudosime komandą „bc“, kad atliktume kai kurias išplėstines aritmetines operacijas. Aptarsime, kaip galime naudoti palyginimo operatorius, loginius ar loginius operatorius, pažangias matematines funkcijas ir sąlyginius sakinius „bash“, naudodami komandą „bc“.
Palyginimo operatoriai
Palyginimo operatoriai paima du skaičius, palygina juos ir grįžta 1 arba 0 priklausomai nuo palyginimo. Jei palyginimas yra teisingas, tada rezultatas yra TIESA (1); kitaip yra NETIESA (0). Toliau pateikiami keli palyginimo operatorių pavyzdžiai.
- num1> num2: Šis palyginimas grįš 1 jei num1 yra didesnis už num2.
- num1 < num2: Rezultatas bus 1 jei num1 yra mažesnis nei num2.
- num1 <= num2: Rezultatas bus 1 jei num1 yra mažesnis arba lygus num2.
- num1> = num2: Rezultatas bus 1 jei num1 yra didesnis arba lygus num2.
- num1 == num2: Rezultatas bus 1 jei num1 yra lygus num2.
- num1 != num2: Rezultatas bus 1 jei abu skaičiai nėra lygūs.
Toliau pateikiami keli palyginimo operatorių, naudojamų kartu su komanda „bc“, pavyzdžiai.
[apsaugotas el. paštas]: ~ $ aidas „5 == 5“ | bc1
[apsaugotas el. paštas]: ~ $ echo “4!= 4 “| bc
0
[apsaugotas el. paštas]: ~ $ aidas „2> 5“ | bc
0
[apsaugotas el. paštas]: ~ $ echo “4<=4” | bc
1
Būlio operatoriai
Loginiai arba loginiai operatoriai sąlyginiuose sakiniuose naudojami tam tikriems loginiams sprendimams atlikti. Toliau pateikiami trys pagrindiniai loginiai operatoriai.
- stat1 && stat2: Tai grįš 1 jei abu teiginiai yra nulis.
- stat1 || stat2: Tai grįš 1 jei kuris nors iš teiginių yra nulis.
- ! stat: Tai grįš 1 jei teiginys yra nulis ir atvirkščiai.
Šie pavyzdžiai iliustruoja, kaip loginiai operatoriai naudojami su „bc“ komanda.
[saugomas el. paštas]: ~ $ echo „-5 && 0“ | bc0
[apsaugotas el. paštas]: ~ $ echo “-1 || 0 “| bc
1
[apsaugotas el. paštas]: ~ $ echo “! 0 “| bc
1
Sąlyginiai pareiškimai
Sąlyginiai teiginiai naudojami konkrečioms komandoms vykdyti, atsižvelgiant į taikomą sąlygą. Sąlyginiame sakinyje taikoma sąlyga apima loginius ir palyginimo operatorius. Toliau pateikiamas sąlyginių sakinių su komanda „bc“ pavyzdys.
[apsaugotas el. paštas]: ~ $ a = 15[apsaugotas el. paštas]: ~ $ b = 20
[apsaugotas el. paštas]: ~ $ echo ', jei (a> b) spausdinama „a yra didesnė“, kitaip spausdinama „b yra didesnė“' | bc -l
b yra didesnis
Ankstesniame pavyzdyje teiginys patikrina, ar a yra didesnis nei b, ar ne. Jei a yra didesnis nei b, jis atspausdins „a yra didesnis“; kitaip jis atspausdins „b yra didesnis.„Mes galime taikyti bet kurią sąlygą naudodami loginius ir palyginimo operatorius aukščiau pateiktame pavyzdyje.
Matematinės funkcijos
„Bc“ komanda taip pat pateikia keletą integruotų matematinių funkcijų, kurias galime naudoti jų neapibrėždami. Toliau pateikiamos kelios pagrindinės funkcijos, naudojamos naudojant „bc“ komandą „bash“.
- s (x): grąžina x sinusą, kur x yra radianais
- c (x): grąžina x kosinusą, kur x yra radianais
- a (x): pateikia x arktangentą ir rezultatas yra radianas
- sqrt (x): grąžina x kvadratinę šaknį. Tai sukelia vykdymo laiko klaidą, kai x yra neigiamas
- l (x): pateikia natūralų x žurnalą.
Šias funkcijas galima naudoti kartu su komanda „bc“, kaip parodyta tolesniuose pavyzdžiuose.
[el. pašto saugoma]: ~ $ pi = 3.1415 m[apsaugotas el. paštas]: ~ $ echo „s ($ pi / 2)“ | bc -l
1
[apsaugotas el. paštas]: ~ $ echo „c ($ pi / 2)“ | bc -l
0
[apsaugotas el. paštas]: ~ $ aidas „a (1)“ | bc -l
0.7854
Skaičiaus kvadratinę šaknį galima apskaičiuoti bash, naudojant komandą „bc“, kaip parodyta kitame paveiksle.
[apsaugotas el. paštas]: ~ $ echo „sqrt (4)“ | bc -l2
Bandant apskaičiuoti neigiamo skaičiaus kvadratinę šaknį, apvalkalas sukels vykdymo laiko klaidą.
[apsaugotas el. paštas]: ~ $ echo „sqrt (-2)“ | bc -lKlaida vykdymo metu (func = (pagrindinis), adr = 4): neigiamo skaičiaus kvadratinė šaknis
Natūralų skaičiaus logaritmą galima apskaičiuoti bash naudojant „bc“ komandą taip.
[apsaugotas el. paštas]: ~ $ aidas „l (2)“ | bc -l.69314718055994530941
Išvada
Rašydami automatikos scenarijus bash, kartais mums reikia pažangių matematinių funkcijų ir loginių operatorių komandoms vykdyti. Komanda „bc“ suteikia daug pažangių matematinių funkcijų ir operatorių aukšto lygio aritmetiniams skaičiavimams atlikti. Šioje pamokoje aptarta „bc“ komandos naudojimas atliekant išplėstines aritmetines operacijas bash.