Naredbe expr i calc: Riješite matematičke izraze u terminalu

Ja sam jedan od onih koji uvijek programiraju skripte bash za rješavanje svakodnevnih situacija (provaliti lozinku AP / usmjerivača, automatizirati procese itd.).

U određenim prilikama vidio sam potrebu da dodijelim vrijednost matematičkog izraza varijabli ili jednostavno radim s matematičkim izrazima, tu se nalazim s problemom što bash i matematički izrazi, proračuni nisu baš prijateljski nastrojeni. Dešava se da bash nije poput pythona, što da kažemo varijabla = 1 + 5/6 (na primjer), u Bashu moramo koristiti naredbu ekspr o izračunati

Izraz naredba

Drugim riječima, naredba expr pomaže nam u rješavanju matematičkih izraza u terminalu, pomoću nje možemo izračunati što nam treba. Na primjer, ako želimo da se pojavi rezultat 1 + 2 * 8/3, u terminal stavljamo:

expr 1 + 2 \* 8 / 3

Imajte na umu da sam prije zvjezdice * stavio kosu crtu - »\… potrebno je, jer expr zvjezdicu ne tumači kao simbol množenja, osim ako \

I rezultat će se pojaviti na ekranu. Evo snimke zaslona s nekoliko primjera:

screenshot_expr1

Kao što možete vidjeti u konačnim izračunima (14/4 i 13/4), 14 podijeljeno sa 4 zapravo je 3.5, a 13 podijeljeno sa 4 zapravo je 3.25, pa kako je moguće da nam pokazuje 3 u oba slučaja? Ono što se događa je da nam naredba expr ne prikazuje decimale, odnosno ono što slijedi nakon zareza, ne prikazuje je, već nam pokazuje samo cijeli broj.

U slučaju da varijabli želimo dodijeliti rezultat matematičkog izraza (Primjer: 10/2), to bi bilo ovako:

variable=`expr 10 / 2`

Zatim to provjeravamo sa:

echo $variable

Važno je da između svakog znaka postoji razmak, odnosno razmak između svakog broja, svakog sabiranja, oduzimanja, množenja ili dijeljenja

Naredba Calc

Ovaj je, za razliku od prethodnog, tačan u smislu decimala, primjer:

calc 15 / 4

Pokazalo bi nam: 3.75

Evo snimke zaslona sa nekoliko primjera:

screenshot_calc

Za razliku od expr, kada koristimo calc, bolje je da NEMA razmaka između svakog znaka, odnosno da nema razmaka između brojeva i simbola, baš kao što vidite na prethodnoj slici. Niti trebaju dodati slovo \ pre *

Pa, ovo je u osnovi ono o čemu sam vam želio reći.

Ipak, postoje još neki zanimljivi savjeti za svaku naredbu (posebno calc), preporučujem da pročitate priručnik:

man calc

man expr

Saludos


Ostavite komentar

Vaša e-mail adresa neće biti objavljena. Obavezna polja su označena sa *

*

*

  1. Za podatke odgovoran: Miguel Ángel Gatón
  2. Svrha podataka: Kontrola neželjene pošte, upravljanje komentarima.
  3. Legitimacija: Vaš pristanak
  4. Komunikacija podataka: Podaci se neće dostavljati trećim stranama, osim po zakonskoj obavezi.
  5. Pohrana podataka: Baza podataka koju hostuje Occentus Networks (EU)
  6. Prava: U bilo kojem trenutku možete ograničiti, oporaviti i izbrisati svoje podatke.

  1.   živahno rekao je

    Vrlo korisno, mada definitivno ne bi bilo dobro koristiti Bash za matematičke izračune, broje se decimale :)

    1.    Wada rekao je

      Gospodine elav, još uvijek imamo bash kalkulator 🙂 možemo koristiti argument -l da koristimo standardnu ​​matematičku biblioteku
      nešto slično tome

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

      ha

      1.    živahno rekao je

        ????

      2.    eliotime3000 rekao je

        Odlicno. Na ovaj način izbjegavam gnjavažu oko instaliranja XCalc kada koristim čisti X11.

      3.    KZKG ^ Gaara rekao je

        Oh, ovaj nisam znao, super !!

  2.   clow_eriol rekao je

    Hvala, vrlo je korisno 😉

    1.    KZKG ^ Gaara rekao je

      Hvala ^ _ ^

  3.   Noctuid rekao je

    Hvala ti. Sistemski kalkulator je konkurent za osnovne operacije.

    1.    KZKG ^ Gaara rekao je

      Hvala vam što ste nas pročitali 🙂

  4.   Joaquin rekao je

    Dobar savjet!

  5.   Pedro lala rekao je

    Ne gusto