Ekspr og bereg kommando: Løs matematiske udtryk i terminal

Jeg er en af ​​dem, der altid programmerer scripts bash til at løse daglige situationer (knæk adgangskoden til AP / routeren, automatiser processer osv.).

Ved visse lejligheder har jeg set behovet for at tildele værdien af ​​et matematisk udtryk til en variabel eller bare arbejde med matematiske udtryk, der finder jeg mig selv med det problem, at bash og matematiske udtryk, beregninger ikke er meget venlige. Det sker, at bash ikke er som python, hvad kan vi sige variabel = 1 + 5/6 (for eksempel), i Bash skal vi bruge kommandoen expr o Sporing

Ekspr-kommando

Med andre ord hjælper expr-kommandoen os med at løse matematiske udtryk i terminalen, med den kan vi beregne, hvad vi har brug for. For eksempel, hvis vi ønsker, at resultatet af 1 + 2 * 8/3 skal vises, sætter vi terminalen:

expr 1 + 2 \* 8 / 3

Bemærk, at før stjernen * sætter jeg tilbageslag - »\ ... det er nødvendigt, fordi expr ikke fortolker stjernen som et multiplikationssymbol, medmindre \

Og resultatet vises på skærmen. Her er et screenshot med nogle eksempler:

screenshot_expr1

Som du kan se i de endelige beregninger (14/4 og 13/4), er 14 divideret med 4 faktisk 3.5 og 13 divideret med 4 er faktisk 3.25, så hvordan er det muligt, at det viser os 3 i begge tilfælde? Hvad der sker er, at expr-kommandoen ikke viser os decimalerne, det vil sige, hvad der følger efter kommaet, det viser det ikke, det viser os kun heltalet.

Hvis vi vil tildele en variabel resultatet af et matematisk udtryk (Eks: 10/2), ville det være sådan:

variable=`expr 10 / 2`

Så kontrollerer vi det med:

echo $variable

Det er vigtigt, at der er et mellemrum mellem hvert tegn, det vil sige et mellemrum mellem hvert nummer, hver addition, subtraktion, multiplikation eller division symbol

Calc-kommando

Denne er, i modsætning til den foregående, nøjagtig med hensyn til decimaler, eksempel:

calc 15 / 4

Det ville vise os: 3.75

Her er et screenshot med flere eksempler:

screenshot_calc

I modsætning til expr, når vi bruger calc, er det bedre, at der ikke er noget mellemrum mellem hvert tegn, det vil sige, at der ikke er mellemrum mellem tal og symboler, ligesom du ser på det foregående billede. De har heller ikke brug for at forhindre a \ før *

Nå, det er dybest set det, jeg ville fortælle dig om.

Der er dog stadig nogle andre interessante tip til hver kommando (især calc), jeg anbefaler, at du læser manualen:

man calc

man expr

hilsen


Efterlad din kommentar

Din e-mailadresse vil ikke blive offentliggjort. Obligatoriske felter er markeret med *

*

*

  1. Ansvarlig for dataene: Miguel Ángel Gatón
  2. Formålet med dataene: Control SPAM, management af kommentarer.
  3. Legitimering: Dit samtykke
  4. Kommunikation af dataene: Dataene vil ikke blive kommunikeret til tredjemand, undtagen ved juridisk forpligtelse.
  5. Datalagring: Database hostet af Occentus Networks (EU)
  6. Rettigheder: Du kan til enhver tid begrænse, gendanne og slette dine oplysninger.

  1.   Elav sagde han

    Meget nyttigt, selvom det bestemt ikke ville være godt at bruge Bash til matematiske beregninger, tæller decimaler :)

    1.    Wada sagde han

      Mr. elav, vi har stadig bash-regnemaskine 🙂 vi kan bruge argumentet -l til at bruge standardmatematikbiblioteket
      noget i den stil

      $ echo "(4/8)+(6/9)" | bc -l
      1.166666666666666666666666

      ha

      1.    Elav sagde han

        ????

      2.    eliotime3000 sagde han

        Fremragende. På denne måde undgår jeg besværet med at installere XCalc, når jeg bruger ren X11.

      3.    KZKG ^ Gaara sagde han

        Åh jeg vidste ikke denne, fantastisk !!

  2.   clow_eriol sagde han

    Tak, det er ret nyttigt 😉

    1.    KZKG ^ Gaara sagde han

      Tak ^ _ ^

  3.   Noctuid sagde han

    Tak skal du have. Systemregnemaskinen har været en konkurrent til grundlæggende operationer.

    1.    KZKG ^ Gaara sagde han

      Tak til dig for at læse os 🙂

  4.   Joaquin sagde han

    Godt tip!

  5.   Pedro lala sagde han

    Jeg kunne ikke lide det