BASH programiranje

bc za izvajanje naprednih aritmetičnih operacij v BASH

bc za izvajanje naprednih aritmetičnih operacij v BASH
Osnovni kalkulator, znan tudi kot 'bc', je pripomoček za ukazno vrstico Linuxa, ki se uporablja za napredno aritmetiko in algebro v bash skriptih. Zagotavlja veliko različnih matematičnih funkcij, kot so sinus, kosinus, tangenta, naravni logaritem v bash. Bash ne more izvajati naprednih aritmetičnih operacij, kot je primerjanje floatov; tu bc pride prav. Pred ukazom 'bc' je predvajal 'dc' (namizni kalkulator), pripomoček UNIX. V tej vadnici bomo za izvajanje naprednih aritmetičnih operacij uporabili ukaz 'bc'.

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

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

Lahko pa uporabimo zastavico '-l' in ukaz 'bc', da dobimo decimalni izhod.

[e-pošta zaščitena]: ~ $ echo “$ num1 / $ num2” | bc -l
1.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” | pr
2
[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” | pr
1
[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” | pr
0
[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 -l
2

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 -l
Napaka 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.

10 najboljših iger za igranje v Ubuntuju
Platforma Windows je bila ena izmed prevladujočih platform za igre na srečo zaradi velikega odstotka iger, ki se danes razvijajo za naravno podporo si...
5 najboljših arkadnih iger za Linux
Dandanes so računalniki resni stroji, ki se uporabljajo za igre na srečo. Če ne boste mogli dobiti novega visokega rezultata, boste vedeli, kaj mislim...
Bitka za Wesnoth 1.13.6 Razvoj izdan
Bitka za Wesnoth 1.13.6, ki je izšel prejšnji mesec, je šesta razvojna izdaja v 1.13.x series in prinaša številne izboljšave, predvsem uporabniški vme...