BASH-programmering

bc til at udføre avancerede aritmetiske operationer i BASH

bc til at udføre avancerede aritmetiske operationer i BASH
Basic Calculator, også kendt som 'bc', er et Linux-kommandolinjeværktøj, der bruges til at udføre avanceret aritmetik og algebra i bash-scripts. Det giver mange forskellige matematiske funktioner som sinus, cosinus, tangens, naturlig logaritme i bash. Bash kan ikke udføre avancerede aritmetiske operationer, som at sammenligne floats; det er her bc kommer til nytte. Kommandoen 'bc' blev forud for 'dc' (Desk Calculator), et UNIX-værktøj. I denne vejledning bruger vi kommandoen 'bc' til at udføre avancerede aritmetiske operationer.

Udførelse af grundlæggende aritmetiske operationer

Enkle aritmetiske operationer som addition, subtraktion, division og multiplikation kan udføres ved hjælp af kommandoen 'bc'. Syntaksen til anvendelse af enkle binære operatører i bash ved hjælp af kommandoen 'bc' er som følger.

[e-mail-beskyttet]: ~ $ echo “ ”| bc

I dette afsnit bruger vi kommandoen 'bc' til at udføre enkle aritmetiske operationer.

[e-mail-beskyttet]: ~ $ num1 = 2.35322 5
[e-mail-beskyttet]: ~ $ num2 = 1.223353
[e-mail-beskyttet]: ~ $ echo “$ num1 + $ num2” | bc
3.576578
[e-mail-beskyttet]: ~ $ echo “$ num1- $ num2” | bc
1.129872
[e-mail-beskyttet]: ~ $ echo “$ num1 * $ num2” | bc
2.878824
[e-mail-beskyttet]: ~ $ echo “$ num1 / $ num2” | bc
1

I ovenstående eksempel fik vi resultatet uden decimal, mens vi udførte division. For at få resultatet op til 'n' decimaler skal vi indstille skalaværdien til 'n' som vist i det følgende eksempel.

[e-mail-beskyttet]: ~ $ echo “scale = 10; $ num1 / $ num2 ”| bc
1.9235862420

Alternativt kan vi bruge '-l' flag og kommandoen 'bc' for at få decimaloutput.

[e-mailbeskyttet]: ~ $ echo “$ num1 / $ num2” | bc -l
1.92358624207403750184

Kommandoen 'bc' kan også bruges til at udføre modulopdeling og beregne effekten af ​​et tal i bash-scripts.

[e-mail-beskyttet]: ~ $ echo “10% 4” | bc
2
[e-mail-beskyttet]: ~ $ echo “10 ^ 2” | bc
100

Udførelse af avancerede aritmetiske operationer

Indtil videre har vi brugt kommandoen 'bc' til at udføre nogle grundlæggende aritmetiske operationer som addition, subtraktion, multiplikation osv., nu; i dette afsnit bruger vi kommandoen 'bc' til at udføre nogle avancerede aritmetiske operationer. Vi vil diskutere, hvordan vi kan bruge sammenligningsoperatorer, logiske eller boolske operatorer, avancerede matematiske funktioner og betingede udsagn i bash ved hjælp af kommandoen 'bc'.

Sammenligningsoperatører

Sammenligningsoperatører tager to tal, sammenligner dem og vender derefter tilbage 1 eller 0 afhængigt af sammenligningen. Hvis sammenligningen er sand, så er resultatet SAND (1); ellers er det FALSK (0). Følgende er nogle eksempler på sammenligningsoperatører.

  • num1> num2: Denne sammenligning vender tilbage 1 hvis den num1 er større end num2.
  • num1 < num2: Resultatet bliver 1 hvis den num1 er mindre end num2.
  • num1 <= num2: Resultatet bliver 1 hvis den num1 er mindre end eller lig med num2.
  • num1> = num2: Resultatet bliver 1 hvis den num1 er større end eller lig med num2.
  • num1 == num2: Resultatet bliver 1 hvis den num1 er lig med num2.
  • num1 != num2: Resultatet bliver 1 hvis begge tal ikke er ens.

Følgende er nogle eksempler på sammenligningsoperatorer brugt sammen med kommandoen 'bc'.

[e-mail-beskyttet]: ~ $ echo “5 == 5” | bc
1
[e-mail-beskyttet]: ~ $ echo “4!= 4 ”| bc
0
[e-mail-beskyttet]: ~ $ echo “2> 5” | bc
0
[e-mail-beskyttet]: ~ $ echo “4<=4” | bc
1

Boolske operatører

Boolske eller logiske operatorer bruges i betingede udsagn til at udføre nogle logiske beslutninger. Følgende er de tre grundlæggende logiske operatører.

  • stat1 && stat2: Dette vender tilbage 1 hvis begge udsagn er ikke-nul.
  • stat1 || stat2: Dette vender tilbage 1 hvis nogen af ​​udsagnene er ikke-nul.
  • ! stat: Dette vender tilbage 1 hvis erklæringen er ikke-nul og omvendt.

De følgende eksempler illustrerer, hvordan logiske operatorer bruges med kommandoen 'bc'.

[e-mail-beskyttet]: ~ $ echo “-5 && 0” | bc
0
[e-mail beskyttet]: ~ $ echo “-1 || 0 ”| bc
1
[e-mail-beskyttet]: ~ $ echo “! 0 ”| bc
1

Betingede erklæringer

Betingede udsagn bruges til at udføre specifikke kommandoer afhængigt af den anvendte tilstand. Den anvendte betingelse i den betingede erklæring involverer logiske og sammenligningsoperatorer. Følgende er eksemplet på betingede udsagn med kommandoen 'bc'.

[e-mail-beskyttet]: ~ $ a = 15
[e-mail-beskyttet]: ~ $ b = 20
[e-mailbeskyttet]: ~ $ echo 'hvis (a> b) udskriver "a er større" ellers udskrives "b er større"' | bc -l
b er større

I ovenstående eksempel kontrollerer udsagnet, om a er større end b eller ikke. Hvis a er større end b, vil den udskrive "a er større"; Ellers vil den udskrive “b er større.”Vi kan anvende enhver tilstand ved hjælp af booleske og sammenligningsoperatorer i ovenstående eksempel.

Matematiske funktioner

Kommandoen 'bc' giver også nogle indbyggede matematiske funktioner, som vi kan bruge uden at definere dem. Følgende er nogle vigtige funktioner, der bruges med kommandoen 'bc' i bash.

  • s (x): returnerer sinus på x, hvor x er i radianer
  • c (x): returnerer cosinus af x hvor x er i radianer
  • økse): returnerer arctangent af x, og resultatet er i radianer
  • sqrt (x): returnerer kvadratroden af ​​x. Det forårsager runtime-fejl, når x er negativ
  • l (x): returnerer naturlig log af x.

Disse funktioner kan bruges med kommandoen 'bc', som vist i de følgende eksempler.

[e-mail-beskyttet]: ~ $ pi = 3.1415
[e-mail-beskyttet]: ~ $ echo “s ($ pi / 2)” | bc -l
1
[e-mail-beskyttet]: ~ $ echo “c ($ pi / 2)” | bc -l
0
[e-mail-beskyttet]: ~ $ echo “a (1)” | bc -l
0.7854

Kvadratroden af ​​et tal kan beregnes i bash ved hjælp af kommandoen 'bc', som vist i den følgende figur.

[e-mail-beskyttet]: ~ $ echo “sqrt (4)” | bc -l
2

Mens du prøver at beregne kvadratroden af ​​et negativt tal, kaster shell en runtime-fejl.

[e-mail-beskyttet]: ~ $ echo “sqrt (-2)” | bc -l
Kørselsfejl (func = (main), adr = 4): Kvadratrod af et negativt tal

Et tals naturlige logaritme kan beregnes bash ved hjælp af kommandoen 'bc' som følger.

[e-mail-beskyttet]: ~ $ echo “l (2)” | bc -l
.69314718055994530941

Konklusion

Mens vi skriver automatiseringsskripter i bash, har vi nogle gange brug for avancerede matematiske funktioner og logiske operatorer til at udføre kommandoer. Kommandoen 'bc' giver mange avancerede matematiske funktioner og operatører til at udføre aritmetiske beregninger på højt niveau. Denne vejledning diskuteret ved hjælp af kommandoen 'bc' til at udføre avancerede aritmetiske operationer i bash.

5 bedste arkadespil til Linux
I dag er computere seriøse maskiner, der bruges til spil. Hvis du ikke kan få den nye høje score, ved du hvad jeg mener. I dette indlæg vil du kende n...
Kamp om Wesnoth 1.13.6 Udvikling frigivet
Kamp om Wesnoth 1.13.6 udgivet i sidste måned, er den sjette udviklingsudgivelse i 1.13.x-serien, og den leverer en række forbedringer, især til bruge...
Sådan installeres League Of Legends på Ubuntu 14.04
Hvis du er fan af League of Legends, er dette en mulighed for dig at prøvekøre League of Legends. Bemærk, at LOL understøttes på PlayOnLinux, hvis du ...