Izvajanje osnovnih aritmetičnih operacij
Preproste aritmetične operacije, kot so seštevanje, odštevanje, deljenje in množenje, lahko izvedete z ukazom 'bc'. Sintaksa uporabe preprostih binarnih operatorjev v bash z uporabo ukaza 'bc' je naslednja.
[e-pošta zaščitena]: ~ $ echo “V tem razdelku bomo z ukazom 'bc' izvajali preproste aritmetične operacije.
[e-pošta zaščitena]: ~ $ num1 = 2.35322 5[e-pošta zaščitena]: ~ $ num2 = 1.223353
[zaščiteno po e-pošti]: ~ $ echo “$ num1 + $ num2” | pr
3.576578
[e-pošta zaščitena]: ~ $ echo “$ num1- $ num2” | pr
1.129872
[e-pošta zaščitena]: ~ $ echo “$ num1 * $ num2” | pr
2.878824
[e-pošta zaščitena]: ~ $ echo “$ num1 / $ num2” | pr
1
V zgornjem primeru smo med izvajanjem delitve dobili rezultat brez decimalnih mest. Da dobimo rezultat do 'n' decimalnih mest, moramo vrednost lestvice nastaviti na 'n', kot je prikazano v naslednjem primeru.
[e-pošta zaščitena]: ~ $ echo “lestvica = 10; $ num1 / $ num2 ”| pr1.9235862420
Lahko pa uporabimo zastavico '-l' in ukaz 'bc', da dobimo decimalni izhod.
[e-pošta zaščitena]: ~ $ echo “$ num1 / $ num2” | bc -l1.92358624207403750184
Ukaz 'bc' se lahko uporablja tudi za delitev modulov in izračun moči števila v bash skriptih.
[e-pošta zaščitena]: ~ $ echo “10% 4” | pr2
[e-pošta zaščitena]: ~ $ echo “10 ^ 2” | pr
100
Izvajanje naprednih aritmetičnih operacij
Do zdaj smo z ukazom 'bc' izvajali nekatere osnovne aritmetične operacije, kot so seštevanje, odštevanje, množenje itd., zdaj; v tem razdelku bomo uporabili ukaz 'bc' za izvajanje nekaterih naprednih aritmetičnih operacij. Razpravljali bomo o tem, kako lahko uporabimo operaterje primerjave, logične ali logične operatorje, napredne matematične funkcije in pogojne stavke v bashu z uporabo ukaza 'bc'.
Primerjalni operaterji
Primerjalni operaterji vzamejo dve številki, ju primerjata in nato vrneta 1 ali 0 odvisno od primerjave. Če je primerjava resnična, potem je rezultat TRUE (1); drugače pa je LAŽNO (0). Sledi nekaj primerov primerjalnih operaterjev.
- num1> num2: Ta primerjava se bo vrnila 1 če je številka1 je večje od num2.
- številka1 < num2: Rezultat bo 1 če je številka1 je manj kot številka2.
- številka1 <= num2: Rezultat bo 1 če je številka1 je manjši ali enak številka2.
- num1> = num2: Rezultat bo 1 če je številka1 je večja ali enaka številka2.
- num1 == num2: Rezultat bo 1 če je številka1 je enako številka2.
- številka1 != num2: Rezultat bo 1 če obe številki nista enaki.
Sledi nekaj primerov primerjalnih operaterjev, ki se uporabljajo skupaj z ukazom 'bc'.
[zaščiteno po e-pošti]: ~ $ echo “5 == 5” | pr1
[e-pošta zaščitena]: ~ $ echo “4!= 4 "| pr
0
[e-pošta zaščitena]: ~ $ echo “2> 5” | pr
0
[e-pošta zaščitena]: ~ $ echo “4<=4” | bc
1
Logični operaterji
Logični ali logični operatorji se uporabljajo v pogojnih stavkih za izvajanje nekaterih logičnih odločitev. Sledijo trije osnovni logični operaterji.
- stat1 && stat2: To se bo vrnilo 1 če sta obe trditvi ne-nič.
- stat1 || stat2: To se bo vrnilo 1 če je katera od trditev ne-nič.
- ! stat: To se bo vrnilo 1 če je izjava ne-nič in obratno.
Naslednji primeri ponazarjajo, kako se z ukazom 'bc' uporabljajo logični operatorji.
[e-pošta zaščitena]: ~ $ echo “-5 && 0” | pr0
[e-pošta zaščitena]: ~ $ echo “-1 || 0 "| pr
1
[e-pošta zaščitena]: ~ $ echo “! 0 "| pr
1
Pogojne izjave
Pogojni stavki se uporabljajo za izvajanje določenih ukazov, odvisno od uporabljenega pogoja. Uporabljeni pogoj v pogojnem stavku vključuje logične in primerjalne operatorje. Sledi primer pogojnih stavkov z ukazom 'bc'.
[e-pošta zaščitena]: ~ $ a = 15[e-pošta zaščitena]: ~ $ b = 20
[zaščiteno po e-pošti]: ~ $ echo ', če (a> b) natisne "a je večje", sicer print "b je večje"' | bc -l
b je večji
V zgornjem primeru stavek preveri, ali je a večji od b ali ne. Če je a večje od b, bo natisnilo "a je večje"; v nasprotnem primeru bo natisnil »b je večji.”V zgornjem primeru lahko uporabimo kateri koli pogoj z uporabo logičnih operatorjev in operatorjev primerjave.
Matematične funkcije
Ukaz 'bc' ponuja tudi nekaj vgrajenih matematičnih funkcij, ki jih lahko uporabljamo, ne da bi jih definirali. Sledi nekaj bistvenih funkcij, ki se uporabljajo z ukazom 'bc' v bash.
- s (x): vrne sinus x, kjer je x v radianih
- c (x): vrne kosinus x, kjer je x v radianih
- a (x): vrne arktangens x, rezultat pa je v radianih
- sqrt (x): vrne kvadratni koren x. Povzroči napako med izvajanjem, kadar je x negativen
- l (x): vrne naravni dnevnik x.
Te funkcije lahko uporabljate z ukazom 'bc', kot je prikazano v naslednjih primerih.
[e-pošta zaščitena]: ~ $ pi = 3.1415[e-pošta zaščitena]: ~ $ echo “s ($ pi / 2)” | bc -l
1
[e-pošta zaščitena]: ~ $ echo “c ($ pi / 2)” | bc -l
0
[e-pošta zaščitena]: ~ $ echo “a (1)” | bc -l
0.7854
Kvadratni koren števila lahko izračunamo v bash z ukazom 'bc', kot je prikazano na naslednji sliki.
[e-pošta zaščitena]: ~ $ echo “sqrt (4)” | bc -l2
Medtem ko poskuša izračunati kvadratni koren negativnega števila, bo lupina vrgla napako med izvajanjem.
[e-pošta zaščitena]: ~ $ echo “sqrt (-2)” | bc -lNapaka med izvajanjem (func = (main), adr = 4): kvadratni koren negativnega števila
Naravni logaritem števila lahko izračunamo v bash z uporabo ukaza 'bc', kot sledi.
[e-pošta zaščitena]: ~ $ echo “l (2)” | bc -l.69314718055994530941
Zaključek
Med pisanjem skriptov za avtomatizacijo v bash včasih za izvajanje ukazov potrebujemo napredne matematične funkcije in logične operatorje. Ukaz 'bc' ponuja številne napredne matematične funkcije in operaterje za izvajanje aritmetičnih izračunov na visoki ravni. V tej vadnici smo razpravljali o uporabi ukaza 'bc' za izvajanje naprednih računskih operacij v bash.