BASH programiranje

bc za izvođenje naprednih aritmetičkih operacija u BASH-u

bc za izvođenje naprednih aritmetičkih operacija u BASH-u
Osnovni kalkulator, poznat i kao 'bc', Linux je uslužni program naredbenog retka koji se koristi za izvođenje napredne aritmetike i algebre u bash skriptama. Pruža mnoštvo različitih matematičkih funkcija poput sinusa, kosinusa, tangente, prirodnog logaritma u bashu. Bash ne može izvoditi napredne aritmetičke operacije, poput uspoređivanja float-ova; tu bc dobro dođe. Naredbi 'bc' prethodio je 'dc' (Desk Kalkulator), uslužni program UNIX. U ovom uputstvu koristit ćemo naredbu 'bc' za izvođenje naprednih aritmetičkih operacija.

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 “ ”| prije Krista

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 Krista
1.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 -l
1.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 Krista
2
[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 Krista
1
[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 Krista
0
[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 -l
2

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 -l
Pogreš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.

Lijevi gumb miša ne radi u sustavu Windows 10
Ako s prijenosnim računalom ili stolnim računalom koristite namjenski miš, ali lijevi gumb miša ne radi u sustavu Windows 10/8/7 iz nekog razloga evo ...
Pokazivač skače ili se slučajno pomiče dok tipkate u sustavu Windows 10
Ako ustanovite da kursor miša sam skače ili se pomiče automatski, nasumično dok tipkate u Windows prijenosnom računalu ili računalu, neki od ovih prij...
Kako obrnuti smjer pomicanja miša i dodirnih pločica u sustavu Windows 10
Miš i Dodirna pločaRačunarstvo ne samo da olakšava, već i učinkovitije i oduzima puno vremena. Ne možemo zamisliti život bez ovih uređaja, ali činjeni...