BASH-programmering

bc för att utföra avancerade aritmetiska operationer i BASH

bc för att utföra avancerade aritmetiska operationer i BASH
Basic Calculator, även känd som 'bc', är ett Linux-kommandoradsverktyg som används för att utföra avancerad aritmetik och algebra i bash-skript. Det ger många olika matematiska funktioner som sinus, cosinus, tangent, naturlig logaritm i bash. Bash kan inte utföra avancerade aritmetiska operationer, som att jämföra floats; det är där bc kommer till nytta. Kommandot 'bc' föregicks av 'dc' (Desk Calculator), ett UNIX-verktyg. I den här handledningen använder vi kommandot 'bc' för att utföra avancerade aritmetiska operationer.

Utföra grundläggande aritmetiska operationer

Enkla aritmetiska operationer som addition, subtraktion, delning och multiplikation kan utföras med kommandot 'bc'. Syntaxen för att tillämpa enkla binära operatörer i bash med kommandot 'bc' är som följer.

[e-postskyddad]: ~ $ echo “ ”| före Kristus

I det här avsnittet använder vi kommandot 'bc' för att utföra enkla aritmetiska operationer.

[e-postskyddad]: ~ $ num1 = 2.35322 5
[e-postskyddad]: ~ $ num2 = 1.223353
[e-postskyddad]: ~ $ echo “$ num1 + $ num2” | före Kristus
3.576578
[e-postskyddad]: ~ $ echo “$ num1- $ num2” | före Kristus
1.129872
[e-postskyddad]: ~ $ echo “$ num1 * $ num2” | före Kristus
2.878824
[e-postskyddad]: ~ $ echo “$ num1 / $ num2” | före Kristus
1

I ovanstående exempel fick vi resultatet utan decimaler när vi utför division. För att få resultatet upp till 'n' decimaler måste vi ställa in skalvärdet till 'n' som visas i följande exempel.

[e-postskyddad]: ~ $ echo “skala = 10; $ num1 / $ num2 ”| före Kristus
1.9235862420

Alternativt kan vi använda flaggan '-l' och kommandot 'bc' för att få decimalutdata.

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

Kommandot 'bc' kan också användas för att utföra moduluppdelning och beräkna kraften för ett tal i bash-skript.

[e-postskyddad]: ~ $ echo “10% 4” | före Kristus
2
[e-postskyddad]: ~ $ echo “10 ^ 2” | före Kristus
100

Utföra avancerade aritmetiska operationer

Hittills har vi använt kommandot 'bc' för att utföra några grundläggande aritmetiska operationer som addition, subtraktion, multiplikation etc., nu; i det här avsnittet använder vi kommandot 'bc' för att utföra några avancerade aritmetiska operationer. Vi kommer att diskutera hur vi kan använda jämförelseoperatorer, logiska eller booleska operatorer, avancerade matematiska funktioner och villkorliga uttalanden i bash med kommandot 'bc'.

Jämförelseoperatörer

Jämförelseoperatörer tar två nummer, jämför dem och återvänder sedan 1 eller 0 beroende på jämförelsen. Om jämförelsen är sant är resultatet SANT (1); annars är det FALSE (0). Nedan följer några exempel på jämförelseoperatörer.

  • num1> num2: Denna jämförelse kommer att återvända 1 om num1 är större än num2.
  • num1 < num2: Resultatet blir 1 om num1 är mindre än num2.
  • num1 <= num2: Resultatet blir 1 om num1 är mindre än eller lika med num2.
  • num1> = num2: Resultatet blir 1 om num1 är större än eller lika med num2.
  • num1 == num2: Resultatet blir 1 om num1 är lika med num2.
  • num1 != num2: Resultatet blir 1 om båda siffrorna inte är lika.

Nedan följer några exempel på jämförelseoperatörer som används tillsammans med kommandot 'bc'.

[e-postskyddad]: ~ $ echo “5 == 5” | före Kristus
1
[e-postskyddad]: ~ $ echo “4!= 4 ”| före Kristus
0
[e-postskyddad]: ~ $ echo “2> 5” | före Kristus
0
[e-postskyddad]: ~ $ echo “4<=4” | bc
1

Booleska operatörer

Booleska eller logiska operatorer används i villkorliga uttalanden för att utföra vissa logiska beslut. Följande är de tre grundläggande logiska operatörerna.

  • stat1 && stat2: Detta kommer att återvända 1 om båda uttalandena är icke-noll.
  • stat1 || stat2: Detta kommer att återvända 1 om något av uttalandena är icke-noll.
  • ! statistik: Detta kommer att återvända 1 om uttalandet är icke-noll och vice versa.

Följande exempel illustrerar hur logiska operatorer används med kommandot 'bc'.

[e-postskyddad]: ~ $ echo “-5 && 0” | före Kristus
0
[e-postskyddad: ~ $ echo “-1 || 0 ”| före Kristus
1
[e-postskyddad]: ~ $ echo “! 0 ”| före Kristus
1

Villkorliga uttalanden

Villkorliga uttalanden används för att utföra specifika kommandon beroende på vilket tillstånd som tillämpas. Det tillämpade villkoret i det villkorliga uttalandet involverar logiska och jämförande operatörer. Följande är exemplet med villkorliga uttalanden med kommandot 'bc'.

[e-postskyddad: ~ $ a = 15
[e-postskyddad]: ~ $ b = 20
[e-postskyddad]: ~ $ echo 'om (a> b) skriv ut "a är större" annars skriv ut "b är större"' | bc -l
b är större

I exemplet ovan kontrollerar uttalandet om a är större än b eller inte. Om a är större än b kommer den att skriva ut "a är större"; annars kommer det att skrivas ut “b är större.”Vi kan använda alla villkor med hjälp av booleska och jämförelseoperatörer i exemplet ovan.

Matematiska funktioner

Kommandot 'bc' ger också några inbyggda matematiska funktioner som vi kan använda utan att definiera dem. Nedan följer några viktiga funktioner som används med kommandot 'bc' i bash.

  • s (x): returnerar sinus på x där x är i radianer
  • c (x): returnerar cosinus av x där x är i radianer
  • yxa): returnerar arctangens av x och resultatet är i radianer
  • sqrt (x): returnerar kvadratrot av x. Det orsakar körtidsfel när x är negativt
  • l (x): returnerar naturlig logg för x.

Dessa funktioner kan användas med kommandot 'bc', som visas i följande exempel.

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

Kvadratroten för ett tal kan beräknas i bash med kommandot 'bc', som visas i följande bild.

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

När du försöker beräkna kvadratroten av ett negativt tal kommer skalet att kasta ett runtime-fel.

[e-postskyddad: ~ $ echo “sqrt (-2)” | bc -l
Runtime error (func = (main), adr = 4): Kvadratrot av ett negativt tal

Den naturliga logaritmen för ett tal kan beräknas bash med kommandot 'bc' enligt följande.

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

Slutsats

När vi skriver automatiseringsskript i bash behöver vi ibland avancerade matematiska funktioner och logiska operatorer för att utföra kommandon. Kommandot 'bc' ger många avancerade matematiska funktioner och operatörer för att utföra aritmetiska beräkningar på hög nivå. Denna handledning diskuterades med hjälp av kommandot 'bc' för att utföra avancerade aritmetiska operationer i bash.

Mus Markören hoppar eller rör sig slumpmässigt när du skriver in Windows 10
Markören hoppar eller rör sig slumpmässigt när du skriver in Windows 10
Om du upptäcker att muspekaren hoppar eller rör sig på egen hand, automatiskt, slumpmässigt när du skriver in Windows-bärbar dator eller dator, kan nå...
Mus Så här vänder du mus- och styrplattans rullningsriktning i Windows 10
Så här vänder du mus- och styrplattans rullningsriktning i Windows 10
Mus och Pekplattas gör inte bara datoranvändning lättare men effektivare och mindre tidskrävande. Vi kan inte föreställa oss ett liv utan dessa enhete...
Mus Så här ändrar du muspekare och markörstorlek, färg och schema på Windows 10
Så här ändrar du muspekare och markörstorlek, färg och schema på Windows 10
Muspekaren och markören i Windows 10 är mycket viktiga aspekter av operativsystemet. Detta kan också sägas för andra operativsystem, så i sanning är d...