Izvođenje osnovnih aritmetičkih operacija
Jednostavne aritmetičke operacije poput zbrajanja, oduzimanja, dijeljenja i množenja mogu se izvesti pomoću naredbe 'bc'. Sintaksa za primjenu jednostavnih binarnih operatora u bashu pomoću naredbe 'bc' je sljedeća.
[e-pošta zaštićena]: ~ $ echo “U ovom ćemo odjeljku upotrijebiti naredbu 'bc' za izvođenje jednostavnih aritmetičkih operacija.
[e-pošta zaštićena]: ~ $ num1 = 2.35322 5[e-pošta zaštićena]: ~ $ num2 = 1.223353
[e-pošta zaštićena]: ~ $ echo “$ num1 + $ num2” | prije Krista
3.576578
[e-pošta zaštićena]: ~ $ echo “$ num1- $ num2” | prije Krista
1.129872
[e-pošta zaštićena]: ~ $ echo “$ num1 * $ num2” | prije Krista
2.878824
[e-pošta zaštićena]: ~ $ echo “$ num1 / $ num2” | prije Krista
1
U gornjem primjeru, tijekom izvođenja dijeljenja, dobili smo rezultat bez decimalnih zareza. Da bismo dobili rezultat do 'n' decimala, moramo postaviti vrijednost skale na 'n' kao što je prikazano u sljedećem primjeru.
[e-pošta zaštićena]: ~ $ echo “razmjera = 10; $ num1 / $ num2 ”| prije Krista1.9235862420
Alternativno, možemo koristiti zastavicu '-l' i naredbu 'bc' da bismo dobili decimalni izlaz.
[e-pošta zaštićena]: ~ $ echo “$ num1 / $ num2” | bc -l1.92358624207403750184
Naredba 'bc' također se može koristiti za izvođenje dijeljenja modula i izračunavanje snage broja u bash skriptama.
[e-pošta zaštićena]: ~ $ echo “10% 4” | prije Krista2
[e-pošta zaštićena]: ~ $ echo “10 ^ 2” | prije Krista
100
Izvođenje naprednih aritmetičkih operacija
Do sada smo koristili naredbu 'bc' za izvođenje nekih osnovnih aritmetičkih operacija poput zbrajanja, oduzimanja, množenja itd., sada; u ovom ćemo odjeljku upotrijebiti naredbu 'bc' za izvršavanje nekih naprednih aritmetičkih operacija. Razgovarat ćemo o tome kako možemo koristiti operatore usporedbe, logičke ili logičke operatore, napredne matematičke funkcije i uvjetne izraze u bashu pomoću naredbe 'bc'.
Operatori usporedbe
Operatori usporedbe uzimaju dva broja, uspoređuju ih i zatim vraćaju 1 ili 0 ovisno o usporedbi. Ako je usporedba istinita, onda je rezultat ISTINITO (1); inače je NETOČNO (0). Slijedi nekoliko primjera operatora usporedbe.
- num1> num2: Vratit će se ova usporedba 1 ako je num1 je veći od num2.
- num1 < num2: Rezultat će biti 1 ako je num1 je manje od num2.
- num1 <= num2: Rezultat će biti 1 ako je num1 je manji ili jednak num2.
- num1> = num2: Rezultat će biti 1 ako je num1 je veći ili jednak num2.
- num1 == num2: Rezultat će biti 1 ako je num1 jednak je num2.
- num1 != num2: Rezultat će biti 1 ako oba broja nisu jednaka.
Slijedi nekoliko primjera operatora usporedbe koji se koriste zajedno s naredbom 'bc'.
[e-pošta zaštićena]: ~ $ echo “5 == 5” | prije Krista1
[e-pošta zaštićena]: ~ $ echo “4!= 4 "| prije Krista
0
[e-pošta zaštićena]: ~ $ echo “2> 5” | prije Krista
0
[e-pošta zaštićena]: ~ $ echo “4<=4” | bc
1
Logički operatori
Logički ili logički operatori koriste se u uvjetnim izrazima za izvršavanje nekih logičkih odluka. Slijede tri osnovna logička operatora.
- stat1 && stat2: Ovo će se vratiti 1 ako su obje izjave ne-nula.
- stat1 || stat2: Ovo će se vratiti 1 ako je bilo koja od izjava ne-nula.
- ! stat: Ovo će se vratiti 1 ako je izjava ne-nula i obrnuto.
Sljedeći primjeri ilustriraju kako se logički operatori koriste s naredbom 'bc'.
[e-pošta zaštićena]: ~ $ echo “-5 && 0” | prije Krista0
[e-pošta zaštićena]: ~ $ echo “-1 || 0 ”| prije Krista
1
[zaštićena e-poštom]: ~ $ echo “! 0 ”| prije Krista
1
Uvjetne izjave
Uvjetni izrazi koriste se za izvršavanje određenih naredbi, ovisno o primijenjenom stanju. Primijenjeni uvjet u uvjetnom izrazu uključuje logičke i operatore usporedbe. Slijedi primjer uvjetnih izjava s naredbom 'bc'.
[e-pošta zaštićena]: ~ $ a = 15[e-pošta zaštićena]: ~ $ b = 20
[zaštićena e-poštom]: ~ $ echo 'if (a> b) print "a je veće" else print "b je veće"' | bc -l
b je veći
U gornjem primjeru izjava provjerava je li a veće od b ili nije. Ako je a veće od b, ispisat će „a je veće“; u suprotnom, ispisat će „b je veće.”U gornjem primjeru možemo primijeniti bilo koji uvjet koristeći logičke i operatore usporedbe.
Matematičke funkcije
Naredba 'bc' također nudi neke ugrađene matematičke funkcije koje možemo koristiti bez njihova definiranja. Slijede neke osnovne funkcije korištene s naredbom 'bc' u bashu.
- s (x): vraća sinus x gdje je x u radijanima
- c (x): vraća kosinus x gdje je x u radijanima
- sjekira): vraća arktangens x, a rezultat je u radijanima
- sqrt (x): vraća kvadratni korijen x. Uzrokuje pogrešku u izvođenju kada je x negativan
- l (x): vraća prirodni zapis x.
Te se funkcije mogu koristiti s naredbom 'bc', kao što je prikazano u sljedećim primjerima.
[e-pošta zaštićena]: ~ $ pi = 3.1415[e-pošta zaštićena]: ~ $ echo “s ($ pi / 2)” | bc -l
1
[e-pošta zaštićena]: ~ $ echo “c ($ pi / 2)” | bc -l
0
[e-pošta zaštićena]: ~ $ echo “a (1)” | bc -l
0.7854
Kvadratni korijen broja može se izračunati u bash pomoću naredbe 'bc', kao što je prikazano na sljedećoj slici.
[e-pošta zaštićena]: ~ $ echo “sqrt (4)” | bc -l2
Pokušavajući izračunati kvadratni korijen negativnog broja, ljuska će baciti pogrešku izvršavanja.
[e-pošta zaštićena]: ~ $ echo “sqrt (-2)” | bc -lPogreška vremena izvođenja (func = (main), adr = 4): Kvadratni korijen negativnog broja
Prirodni logaritam broja može se izračunati u bash pomoću naredbe 'bc' kako slijedi.
[e-pošta zaštićena]: ~ $ echo “l (2)” | bc -l.69314718055994530941
Zaključak
Dok pišemo skripte za automatizaciju u bash, ponekad su nam potrebne napredne matematičke funkcije i logički operatori za izvršavanje naredbi. Naredba 'bc' nudi mnoge napredne matematičke funkcije i operatore za izvođenje aritmetičkih izračuna na visokoj razini. U ovom su vodiču razgovarali o korištenju naredbe 'bc' za izvođenje naprednih aritmetičkih operacija u bashu.