Príkaz Expr a calc: Riešenie matematických výrazov v termináli

Patrím k tým, ktorí vždy programujú skripty tresnúť riešiť každodenné situácie (prelomiť heslo AP / Routera, automatizovať procesy atď.).

Pri určitých príležitostiach som videl potrebu priradiť hodnotu matematického výrazu k premennej alebo jednoducho pracovať s matematickými výrazmi, tam sa ocitám s problémom, že bash a matematické výrazy, výpočty nie sú veľmi prívetivé. Stáva sa, že bash nie je ako pytón, čo môžeme povedať premenná = 1 + 5/6 (napríklad), v Bash musíme použiť príkaz expresné o trasovanie

Príkaz Expr

Inými slovami, príkaz expr nám pomáha vyriešiť matematické výrazy v termináli, pomocou ktorého môžeme vypočítať, čo potrebujeme. Napríklad, ak chceme, aby sa zobrazil výsledok 1 + 2 * 8/3, vložíme do terminálu:

expr 1 + 2 \* 8 / 3

Všimnite si, že pred hviezdičkou * som vložil spätné lomítko - »\ ... je to nevyhnutné, pretože expr neinterpretuje hviezdičku ako symbol násobenia, pokiaľ \

A výsledok sa objaví na obrazovke. Tu je snímka obrazovky s niekoľkými príkladmi:

screenshot_expr1

Ako vidíte v konečných výpočtoch (14/4 a 13/4), 14 delené 4 je v skutočnosti 3.5 a 13 delené 4 je skutočne 3.25, tak ako je možné, že nám ukazuje 3 v oboch prípadoch? Stane sa to, že príkaz expr nám neukáže desatinné miesta, teda to, čo nasleduje za čiarkou, neukáže to, iba nám ukáže celé číslo.

V prípade, že chceme premennej priradiť výsledok matematického výrazu (Ex: 10/2), bolo by to takto:

variable=`expr 10 / 2`

Potom to skontrolujeme pomocou:

echo $variable

Je dôležité, aby medzi každým znakom bola medzera, to znamená medzera medzi každým číslom, každým znakom sčítania, odčítania, násobenia alebo delenia

Príkaz Calc

Tento, na rozdiel od predchádzajúceho, je presný, pokiaľ ide o desatinné miesta, napríklad:

calc 15 / 4

Ukázalo by sa nám: 3.75

Tu je snímka obrazovky s niekoľkými príkladmi:

screenshot_calc

Na rozdiel od výrazu, keď používame calc, je lepšie, aby medzi každým znakom neexistovala ŽIADNA medzera, to znamená, že medzi číslami a symbolmi nie sú medzery, ako vidíte na predchádzajúcom obrázku. Tiež nemusia pred a pridať *

No, o tomto som ti chcel v podstate povedať.

Pre každý príkaz však stále existuje niekoľko ďalších zaujímavých tipov (najmä calc), odporúčam vám prečítať si príručku:

man calc

man expr

pozdravy


Zanechajte svoj komentár

Vaša e-mailová adresa nebude zverejnená. Povinné položky sú označené *

*

*

  1. Zodpovedný za údaje: Miguel Ángel Gatón
  2. Účel údajov: Kontrolný SPAM, správa komentárov.
  3. Legitimácia: Váš súhlas
  4. Oznamovanie údajov: Údaje nebudú poskytnuté tretím stranám, iba ak to vyplýva zo zákona.
  5. Ukladanie dát: Databáza hostená spoločnosťou Occentus Networks (EU)
  6. Práva: Svoje údaje môžete kedykoľvek obmedziť, obnoviť a vymazať.

  1.   živý dijo

    Veľmi užitočné, aj keď by určite nebolo dobré používať Bash na matematické výpočty, desatinné miesta sa počítajú :)

    1.    Wada dijo

      Pán elav, stále máme bash kalkulačku 🙂 na použitie štandardnej matematickej knižnice môžeme použiť argument -l
      niečo také

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

      ha

      1.    živý dijo

        😀

      2.    eliotime3000 dijo

        Vynikajúci Týmto spôsobom sa vyhnem problémom pri inštalácii XCalc pri použití čistej verzie X11.

      3.    KZKG ^ Gaara dijo

        Ach tento som nepoznal, super !!

  2.   clow_eriol dijo

    Vďaka, je to celkom užitočné 😉

    1.    KZKG ^ Gaara dijo

      Vďaka ^ _ ^

  3.   Noctuid dijo

    Ďakujem. Systémová kalkulačka konkurovala základným operáciám.

    1.    KZKG ^ Gaara dijo

      Ďakujeme, že ste si nás prečítali 🙂

  4.   Joaquin dijo

    Dobrý tip!

  5.   Pedro lala dijo

    Nepáčilo sa mi to