Laus ja laskukomento: Ratkaise matemaattiset lausekkeet päätelaitteessa

Olen yksi niistä, jotka ohjelmoivat aina skriptejä kemut päivittäisten tilanteiden ratkaisemiseksi (murtaa AP / reitittimen salasana, automatisoida prosessit jne.).

Joissakin tilanteissa olen nähnyt tarpeen määrittää matemaattisen lausekkeen arvo muuttujalle tai yksinkertaisesti työskennellä matemaattisten lausekkeiden kanssa. Minulla on ongelma, että bash ja matemaattiset lausekkeet, laskelmat eivät ole kovin ystävällisiä. Sattuu, että bash ei ole kuin python, mitä voimme sanoa muuttuja = 1 + 5/6 (esimerkiksi), Bashissa meidän on käytettävä komentoa lauseke o Jäljitys

Lausekomento

Toisin sanoen expr-komento auttaa meitä ratkaisemaan matemaattisia lausekkeita päätelaitteessa, sen avulla voimme laskea mitä tarvitsemme. Esimerkiksi, jos haluamme tuloksen 1 + 2 * 8/3 ilmestyvän, laitamme päätelaitteeseen:

expr 1 + 2 \* 8 / 3

Huomaa, että ennen tähtiä * laitan taaksepäin vinoviivan - »\ ... se on välttämätöntä, koska expr ei tulkitse tähtiä kertolaskuun, ellei \

Ja tulos näkyy näytöllä. Tässä on kuvakaappaus, jossa on joitain esimerkkejä:

kuvakaappaus_lauseke1

Kuten voit nähdä lopullisissa laskelmissa (14/4 ja 13/4), 14 jaettuna 4: llä on 3.5 ja 13 jaettuna 4: llä on 3.25, joten miten on mahdollista, että se näyttää meille 3 molemmissa tapauksissa? Tapahtuma on, että expr-komento ei näytä desimaaleja, toisin sanoen sitä, mikä seuraa pilkun jälkeen, se ei näytä sitä, se näyttää vain kokonaisluvun.

Jos haluamme määrittää muuttujalle matemaattisen lausekkeen tuloksen (Esim. 10/2), se olisi seuraava:

variable=`expr 10 / 2`

Sitten tarkistamme sen:

echo $variable

On tärkeää, että jokaisen merkin välillä on välilyönti, ts. Väli jokaisen numeron, jokaisen yhteenlasku-, vähennys-, kerro- tai jakosymbolin välillä

Calc-komento

Tämä, toisin kuin edellinen, on tarkka desimaalien suhteen, esimerkiksi:

calc 15 / 4

Se osoittaisi meille: 3.75

Tässä on kuvakaappaus, jossa on useita esimerkkejä:

screenshot_calc

Toisin kuin lauseke, kun käytämme laskutoimitusta, on parempi, että jokaisen merkin välillä ei ole välilyöntiä, eli että numeroiden ja symbolien välillä ei ole välilyöntejä, kuten edellisessä kuvassa näkyy. Heidän ei myöskään tarvitse asettaa etukäteen \ ennen *

No, juuri siitä halusin kertoa sinulle.

Jokaiselle komennolle on kuitenkin vielä joitain mielenkiintoisia vinkkejä (erityisesti calc), suosittelen, että luet käyttöoppaan:

man calc

man expr

terveiset


Jätä kommentti

Sähköpostiosoitettasi ei julkaista. Pakolliset kentät on merkitty *

*

*

  1. Vastuussa tiedoista: Miguel Ángel Gatón
  2. Tietojen tarkoitus: Roskapostin hallinta, kommenttien hallinta.
  3. Laillistaminen: Suostumuksesi
  4. Tietojen välittäminen: Tietoja ei luovuteta kolmansille osapuolille muutoin kuin lain nojalla.
  5. Tietojen varastointi: Occentus Networks (EU) isännöi tietokantaa
  6. Oikeudet: Voit milloin tahansa rajoittaa, palauttaa ja poistaa tietojasi.

  1.   vilkas dijo

    Erittäin hyödyllinen, vaikka ei olisi varmasti hyvä käyttää Bashia matemaattisiin laskelmiin, desimaalit lasketaan :)

    1.    Wada dijo

      Herra elav, meillä on vielä bash-laskin 🙂 voimme käyttää -l-argumenttia käyttääksesi tavallista matematiikkakirjastoa
      jotain sellaista

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

      ha

      1.    vilkas dijo

        ????

      2.    eliotime3000 dijo

        Erinomainen. Näin vältän vaivaa XCalcin asentamisessa, kun käytät puhdasta X11: tä.

      3.    KZKG ^ Gaara dijo

        Voi en tiennyt tätä, hieno !!

  2.   clow_eriol dijo

    Kiitos, se on varsin hyödyllinen 😉

    1.    KZKG ^ Gaara dijo

      Kiitos ^ _ ^

  3.   Noctuid dijo

    Kiitos. Järjestelmälaskin on ollut kilpailija perustoiminnoissa.

    1.    KZKG ^ Gaara dijo

      Kiitos, että luet meidät 🙂

  4.   Joaquin dijo

    Hyvä vinkki!

  5.   Pedro lala dijo

    En pidä minusta