Expr en calc commando: los wiskundige uitdrukkingen op in terminal

Ik ben een van degenen die altijd scripts programmeren slaan om dagelijkse situaties op te lossen (kraak het AP / Router-wachtwoord, automatiseer processen, enz.).

Bij bepaalde gelegenheden heb ik de noodzaak gezien om de waarde van een wiskundige uitdrukking aan een variabele toe te kennen, of gewoon met wiskundige uitdrukkingen te werken, daar sta ik voor het probleem dat bash en wiskundige uitdrukkingen, berekeningen niet erg vriendelijk zijn. Het komt voor dat bash niet is zoals python, wat kunnen we zeggen variabele = 1 + 5/6 (bijvoorbeeld), in Bash moeten we het commando gebruiken uitdrukken o Trace

Expr-opdracht

Met andere woorden, het expr-commando helpt ons om wiskundige uitdrukkingen in de terminal op te lossen, waarmee we kunnen berekenen wat we nodig hebben. Als we bijvoorbeeld willen dat het resultaat van 1 + 2 * 8/3 verschijnt, voegen we de terminal toe:

expr 1 + 2 \* 8 / 3

Merk op dat voor de asterisk * ik de backslash - »\… zet die nodig is, omdat expr de asterisk niet interpreteert als een vermenigvuldigingsteken tenzij de \

En het resultaat verschijnt op het scherm. Hier is een screenshot met enkele voorbeelden:

screenshot_expr1

Zoals je kunt zien in de uiteindelijke berekeningen (14/4 en 13/4), is 14 gedeeld door 4 eigenlijk 3.5 en 13 gedeeld door 4 is eigenlijk 3.25, dus hoe is het mogelijk dat het ons in beide gevallen 3 laat zien? Wat er gebeurt, is dat het expr-commando ons niet de decimalen laat zien, dat wil zeggen, wat volgt na de komma, het toont het niet, het toont ons alleen het gehele getal.

Als we aan een variabele het resultaat van een wiskundige uitdrukking willen toewijzen (Vb: 10/2), zou het als volgt zijn:

variable=`expr 10 / 2`

Dan controleren we het met:

echo $variable

Het is belangrijk dat er een spatie is tussen elk teken, dat wil zeggen een spatie tussen elk getal, elk symbool voor optellen, aftrekken, vermenigvuldigen of delen

Calc-opdracht

Deze is, in tegenstelling tot de vorige, exact in termen van decimalen, bijvoorbeeld:

calc 15 / 4

Het zou ons laten zien: 3.75

Hier is een screenshot met verschillende voorbeelden:

screenshot_berekening

In tegenstelling tot expr, is het bij het gebruik van calc beter dat er GEEN spatie tussen elk teken staat, dat wil zeggen dat er geen spaties zijn tussen cijfers en symbolen, net zoals je in de vorige afbeelding ziet. Ze hoeven ook geen \ voor de * te plaatsen

Nou, dit is eigenlijk waar ik je over wilde vertellen.

Er zijn echter nog enkele andere interessante tips voor elk commando (vooral calc), ik raad je aan de handleiding te lezen:

man calc

man expr

groeten


Laat je reactie achter

Uw e-mailadres wordt niet gepubliceerd. Verplichte velden zijn gemarkeerd met *

*

*

  1. Verantwoordelijk voor de gegevens: Miguel Ángel Gatón
  2. Doel van de gegevens: Controle SPAM, commentaarbeheer.
  3. Legitimatie: uw toestemming
  4. Mededeling van de gegevens: De gegevens worden niet aan derden meegedeeld, behalve op grond van wettelijke verplichting.
  5. Gegevensopslag: database gehost door Occentus Networks (EU)
  6. Rechten: u kunt uw gegevens op elk moment beperken, herstellen en verwijderen.

  1.   levendig zei

    Erg handig, hoewel het zeker niet goed zou zijn om Bash te gebruiken voor wiskundige berekeningen, decimalen tellen mee :)

    1.    Wada zei

      Meneer elav, we hebben nog steeds een bash-rekenmachine 🙂 we kunnen het argument -l gebruiken om de standaard wiskundebibliotheek te gebruiken
      zoiets

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

      ha

      1.    levendig zei

        ????

      2.    eliotime3000 zei

        Uitstekend. Op deze manier vermijd ik het gedoe van het installeren van XCalc bij gebruik van pure X11.

      3.    KZKG ^ Gaara zei

        Oh ik kende deze niet, geweldig !!

  2.   clow_eriol zei

    Bedankt, het is best handig 😉

    1.    KZKG ^ Gaara zei

      Bedankt ^ _ ^

  3.   Noctuid zei

    Dank je. De systeemcalculator is een concurrent geweest voor basisbewerkingen.

    1.    KZKG ^ Gaara zei

      Bedankt voor het lezen 🙂

  4.   Joaquin zei

    Goed advies!

  5.   Pedro lala zei

    Ik vond het niet leuk