BC for å utføre avanserte aritmetiske operasjoner i bash

BC for å utføre avanserte aritmetiske operasjoner i bash
Grunnleggende kalkulator, også kjent som 'BC,' er et Linux-kommandolinjeverktøy som brukes til å utføre avansert aritmetikk og algebra i bash-skript. Det gir mange forskjellige matematiske funksjoner som sinus, kosinus, tangent, naturlig logaritme i bash. Bash kan ikke utføre avanserte aritmetiske operasjoner, som å sammenligne flottører; Det er der BC kommer godt med. 'BC' -kommandoen ble gitt av 'DC' (skrivebordskalkulator), et UNIX -verktøy. I denne opplæringen vil vi bruke 'BC' -kommandoen til å utføre avanserte aritmetiske operasjoner.

Utføre grunnleggende aritmetiske operasjoner

Enkle aritmetiske operasjoner som tillegg, subtraksjon, inndeling og multiplikasjon kan utføres ved hjelp av 'BC' -kommandoen. Syntaksen for å bruke enkle binære operatører i bash ved hjelp av 'BC' -kommandoen er som følger.

ubuntu@ubuntu: ~ $ ekko “ ”| BC

I denne delen vil vi bruke 'BC' -kommandoen for å utføre enkle aritmetiske operasjoner.

ubuntu@ubuntu: ~ $ num1 = 2.35322 5
ubuntu@ubuntu: ~ $ num2 = 1.223353
ubuntu@ubuntu: ~ $ ekko “$ num1+$ num2” | BC
3.576578
ubuntu@ubuntu: ~ $ ekko “$ num1- $ num2” | BC
1.129872
ubuntu@ubuntu: ~ $ ekko “$ num1*$ num2” | BC
2.878824
ubuntu@ubuntu: ~ $ ekko “$ num1/$ num2” | BC
1

I eksemplet ovenfor, mens vi utførte divisjon, fikk vi resultatet uten desimalpoeng. For å få resultatet opp til 'n' desimalpunkter, må vi sette skalaverdien til 'n' som vist i følgende eksempel.

ubuntu@ubuntu: ~ $ ekko “skala = 10; $ num1/$ num2 ”| BC
1.9235862420

Alternativt kan vi bruke '-l' flagget og 'BC' -kommandoen for å få desimalutgang.

ubuntu@ubuntu: ~ $ ekko “$ num1/$ num2” | BC -L
1.92358624207403750184

'BC' -kommandoen kan også brukes til å utføre modulusdivisjon og beregne kraften til et tall i bash -skript.

ubuntu@ubuntu: ~ $ ekko “10%4” | BC
2
ubuntu@ubuntu: ~ $ ekko “10^2” | BC
100

Utføre avanserte aritmetiske operasjoner

Så langt har vi brukt 'BC' -kommandoen for å utføre noen grunnleggende aritmetiske operasjoner som tillegg, subtraksjon, multiplikasjon osv., nå; I denne delen vil vi bruke 'BC' -kommandoen til å utføre noen avanserte aritmetiske operasjoner. Vi vil diskutere hvordan vi kan bruke sammenligningsoperatører, logiske eller boolske operatører, avanserte matematiske funksjoner og betingede uttalelser i Bash ved hjelp av 'BC' -kommandoen.

Sammenligningsoperatører

Sammenligningsoperatører tar to tall, sammenligner dem og returnerer deretter 1 eller 0 Avhengig av sammenligningen. Hvis sammenligningen er sant, er resultatet Sant (1); Ellers er det Falsk (0). Følgende er noen eksempler på sammenligningsoperatører.

  • num1> num2: Denne sammenligningen kommer tilbake 1 Hvis num1 er større enn num2.
  • num1 < num2: Resultatet vil være 1 Hvis num1 er mindre enn num2.
  • num1 <= num2: Resultatet vil være 1 Hvis num1 er mindre enn eller lik num2.
  • num1> = num2: Resultatet vil være 1 Hvis num1 er større enn eller lik num2.
  • num1 == num2: Resultatet vil være 1 Hvis num1 er lik num2.
  • num1 != num2: Resultatet vil være 1 Hvis begge tallene ikke er like.

Følgende er noen eksempler på sammenligningsoperatører som brukes sammen med 'BC' -kommandoen.

ubuntu@ubuntu: ~ $ ekko “5 == 5” | BC
1
ubuntu@ubuntu: ~ $ ekko “4!= 4 ”| BC
0
ubuntu@ubuntu: ~ $ ekko “2> 5” | BC
0
ubuntu@ubuntu: ~ $ ekko “4<=4” | bc
1

Boolske operatører

Boolske eller logiske operatører brukes i betingede uttalelser for å utføre noen logiske beslutninger. Følgende er de tre grunnleggende logiske operatørene.

  • Stat1 && Stat2: Dette vil komme tilbake 1 Hvis begge uttalelsene er ikke-null.
  • Stat1 || Stat2: Dette vil komme tilbake 1 Hvis noen av uttalelsene er ikke-null.
  • ! stat: Dette vil komme tilbake 1 Hvis uttalelsen er ikke-null og vice versa.

Følgende eksempler illustrerer hvordan logiske operatører brukes med 'BC' -kommandoen.

ubuntu@ubuntu: ~ $ ekko “-5 && 0” | BC
0
ubuntu@ubuntu: ~ $ ekko “-1 || 0 ”| BC
1
ubuntu@ubuntu: ~ $ ekko “! 0 ”| BC
1

Betingede uttalelser

Betingede utsagn brukes til å utføre spesifikke kommandoer avhengig av den anvendte tilstanden. Den anvendte tilstanden i den betingede uttalelsen involverer logiske og sammenligningsoperatører. Følgende er eksemplet med betingede uttalelser med 'BC' -kommandoen.

ubuntu@ubuntu: ~ $ a = 15
ubuntu@ubuntu: ~ $ b = 20
ubuntu@ubuntu: ~ $ ekko 'hvis (a> b) skriv ut "a er større" annet utskrift "b er større" "| BC -L
B er større

I eksemplet ovenfor sjekker uttalelsen om A er større enn B eller ikke. Hvis A er større enn B, vil den skrive ut “A er større”; Ellers vil den skrive ut “B er større.”Vi kan bruke enhver tilstand ved hjelp av boolske og sammenligningsoperatører i eksemplet ovenfor.

Matematiske funksjoner

'BC' -kommandoen gir også noen innebygde matematiske funksjoner som vi kan bruke uten å definere dem. Følgende er noen viktige funksjoner som brukes med 'BC' -kommandoen i bash.

  • s (x): returnerer sinus av x der x er i radianer
  • C (x): returnerer kosinus av x hvor x er i radianer
  • øks): Returnerer arctangent av x og resultatet er i radianer
  • SQRT (x): Returnerer kvadratroten av x. Det forårsaker runtime -feil når x er negativ
  • L (x): Returnerer naturlig logg over x.

Disse funksjonene kan brukes med 'BC' -kommandoen, som vist i følgende eksempler.

ubuntu@ubuntu: ~ $ pi = 3.1415
ubuntu@ubuntu: ~ $ ekko “s ($ pi/2)” | BC -L
1
ubuntu@ubuntu: ~ $ ekko “c ($ pi/2)” | BC -L
0
ubuntu@ubuntu: ~ $ ekko “a (1)” | BC -L
0.7854

Kvadratroten til et tall kan beregnes i bash ved å bruke 'BC' -kommandoen, som vist i følgende figur.

ubuntu@ubuntu: ~ $ ekko “sqrt (4)” | BC -L
2

Mens du prøver å beregne kvadratroten til et negativt tall, vil skallet kaste en runtime -feil.

ubuntu@ubuntu: ~ $ ekko “sqrt (-2)” | BC -L
Runtime Feil (Func = (Main), ADR = 4): kvadratrot av et negativt tall

Den naturlige logaritmen til et tall kan beregnes i bash ved å bruke 'BC' -kommandoen som følger.

ubuntu@ubuntu: ~ $ ekko “l (2)” | BC -L
.69314718055994530941

Konklusjon

Når vi skriver automatiseringsskript i bash, trenger vi noen ganger avanserte matematiske funksjoner og logiske operatører for å utføre kommandoer. Kommandoen 'BC' gir mange avanserte matematiske funksjoner og operatører for å utføre aritmetiske beregninger på høyt nivå på høyt nivå. Denne opplæringen diskutert ved hjelp av 'BC' -kommandoen for å utføre avanserte aritmetiske operasjoner i bash.