Ukaz expr in calc: v terminalu rešite matematične izraze

Sem eden tistih, ki vedno programira skripte bash za reševanje vsakodnevnih situacij (razbiti geslo za dostop do AP / usmerjevalnika, avtomatizirati procese itd.).

Ob določenih priložnostih sem videl, da je treba spremenljivki dodeliti vrednost nekega matematičnega izraza ali preprosto delati z matematičnimi izrazi. Tam se znajdem pred težavo, da bash in matematični izrazi niso zelo prijazni. Zgodi se, da bash ni kot python, kaj lahko rečemo spremenljivka = 1 + 5/6 (na primer), v Bashu moramo uporabiti ukaz ekspr o sledenje

Ukaz expr

Z drugimi besedami, ukaz expr nam pomaga rešiti matematične izraze v terminalu, z njim lahko izračunamo, kaj potrebujemo. Na primer, če želimo, da se prikaže rezultat 1 + 2 * 8/3, v terminal vstavimo:

expr 1 + 2 \* 8 / 3

Upoštevajte, da pred zvezdico * postavim poševnico nazaj - »\… to je potrebno, saj expr zvezdice ne razlaga kot množilnega simbola, razen če \

In rezultat se bo prikazal na zaslonu. Tu je posnetek zaslona z nekaj primeri:

screenshot_expr1

Kot lahko vidite v končnih izračunih (14/4 in 13/4), je 14, deljeno s 4, dejansko 3.5 in 13, deljeno s 4, je dejansko 3.25, torej, kako je mogoče, da nam v obeh primerih pokaže 3? Zgodi se, da nam ukaz expr ne prikaže decimalnih mest, to je tisto, kar sledi za vejico, ga ne prikaže, temveč samo celo število.

V primeru, da spremenljivki želimo dodeliti rezultat matematičnega izraza (Na primer: 10/2), bi bil tak:

variable=`expr 10 / 2`

Nato preverimo z:

echo $variable

Pomembno je, da je med posameznimi znaki presledek, to je presledek med vsako številko, vsakim seštevanjem, odštevanjem, množenjem ali deljenjem

Ukaz Calc

Ta je za razliko od prejšnjega natančen v obliki decimalnih mest, na primer:

calc 15 / 4

Pokazalo bi nam: 3.75

Tu je posnetek zaslona z nekaj primeri:

screenshot_calc

Za razliko od expr je pri uporabi calc bolje, da med posameznimi znaki NI prostora, to pomeni, da med številkami in simboli ni presledkov, tako kot vidite na prejšnji sliki. Prav tako jim ni treba dodati znaka \ pred *

No, o tem v bistvu sem vam hotel povedati.

Vseeno pa obstaja še nekaj zanimivih nasvetov za vsak ukaz (zlasti kalc), priporočam, da preberete priročnik:

man calc

man expr

pozdrav


Pustite svoj komentar

Vaš e-naslov ne bo objavljen. Obvezna polja so označena z *

*

*

  1. Za podatke odgovoren: Miguel Ángel Gatón
  2. Namen podatkov: Nadzor neželene pošte, upravljanje komentarjev.
  3. Legitimacija: Vaše soglasje
  4. Sporočanje podatkov: Podatki se ne bodo posredovali tretjim osebam, razen po zakonski obveznosti.
  5. Shranjevanje podatkov: Zbirka podatkov, ki jo gosti Occentus Networks (EU)
  6. Pravice: Kadar koli lahko omejite, obnovite in izbrišete svoje podatke.

  1.   živahno je dejal

    Zelo koristno, čeprav vsekakor ne bi bilo dobro uporabiti Basha za matematične izračune, štejejo decimalna mesta :)

    1.    Wada je dejal

      Gospod elav, še vedno imamo bash kalkulator 🙂 za uporabo standardne matematične knjižnice lahko uporabimo argument -l
      nekaj takega

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

      ha

      1.    živahno je dejal

        ????

      2.    eliotime3000 je dejal

        Odlično. Na ta način se izognem težavam pri namestitvi XCalc pri uporabi čistega X11.

      3.    KZKG ^ Gaara je dejal

        Oh tega nisem vedel, super !!

  2.   clow_eriol je dejal

    Hvala, zelo koristno 😉

    1.    KZKG ^ Gaara je dejal

      Hvala ^ _ ^

  3.   Noktuid je dejal

    Hvala vam. Sistemski kalkulator je konkurenca za osnovne operacije.

    1.    KZKG ^ Gaara je dejal

      Hvala, ker ste nas prebrali 🙂

  4.   Joaquin je dejal

    Dober namig!

  5.   Pedro lala je dejal

    Ni mi bilo všeč