Polecenie Expr i calc: Rozwiązywanie wyrażeń matematycznych w terminalu

Należę do tych, którzy zawsze programują skrypty bash rozwiązywać codzienne sytuacje (złamać hasło AP / routera, zautomatyzować procesy itp.).

Przy niektórych okazjach widziałem potrzebę przypisania wartości wyrażenia matematycznego zmiennej lub po prostu pracy z wyrażeniami matematycznymi, tam napotykam problem, że bash i wyrażenia matematyczne, obliczenia nie są zbyt przyjazne. Zdarza się, że bash nie jest podobny do Pythona, co możemy powiedzieć zmienna = 1 + 5/6 (na przykład) w Bash musimy użyć polecenia expr o Tracing

Wyraż, polecenie

Innymi słowy, polecenie expr pomaga nam w rozwiązywaniu wyrażeń matematycznych w terminalu, dzięki czemu możemy obliczyć, czego potrzebujemy. Na przykład, jeśli chcemy, aby pojawił się wynik 1 + 2 * 8/3, wstawiamy w terminalu:

expr 1 + 2 \* 8 / 3

Zauważ, że przed gwiazdką * umieściłem ukośnik odwrotny - »\… jest to konieczne, ponieważ wyrażenie nie interpretuje gwiazdki jako symbol mnożenia, chyba że \

Wynik pojawi się na ekranie. Oto zrzut ekranu z kilkoma przykładami:

zrzut_wyr1

Jak widać w ostatecznych obliczeniach (14/4 i 13/4), 14 podzielone przez 4 to właściwie 3.5, a 13 podzielone przez 4 to w rzeczywistości 3.25, więc jak to możliwe, że pokazuje nam 3 w obu przypadkach? Dzieje się tak, że polecenie expr nie pokazuje nam liczb dziesiętnych, to znaczy to, co następuje po przecinku, nie pokazuje tego, pokazuje nam tylko liczbę całkowitą.

W przypadku gdybyśmy chcieli przypisać zmiennej wynik wyrażenia matematycznego (np. 10/2), wyglądałoby to tak:

variable=`expr 10 / 2`

Następnie sprawdzamy to za pomocą:

echo $variable

Ważne jest, aby między każdym znakiem była spacja, czyli spacja między każdą liczbą, każdym symbolem dodawania, odejmowania, mnożenia lub dzielenia

Polecenie Calc

Ten, w przeciwieństwie do poprzedniego, jest dokładny pod względem liczb dziesiętnych, przykład:

calc 15 / 4

Pokazałoby nam: 3.75

Oto zrzut ekranu z kilkoma przykładami:

zrzut ekranu_calc

W przeciwieństwie do wyrażenia, kiedy używamy calc, lepiej jest, aby nie było spacji między każdym znakiem, to znaczy, aby nie było spacji między liczbami i symbolami, tak jak widać na poprzednim obrazku. Nie muszą też dodawać znaku \ przed *

Cóż, w zasadzie o tym chciałem ci powiedzieć.

Jednak dla każdego polecenia (szczególnie kalkulator) jest jeszcze kilka innych ciekawych wskazówek, polecam przeczytanie instrukcji:

man calc

man expr

pozdrowienia


Zostaw swój komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *

*

*

  1. Odpowiedzialny za dane: Miguel Ángel Gatón
  2. Cel danych: kontrola spamu, zarządzanie komentarzami.
  3. Legitymacja: Twoja zgoda
  4. Przekazywanie danych: Dane nie będą przekazywane stronom trzecim, z wyjątkiem obowiązku prawnego.
  5. Przechowywanie danych: baza danych hostowana przez Occentus Networks (UE)
  6. Prawa: w dowolnym momencie możesz ograniczyć, odzyskać i usunąć swoje dane.

  1.   pełen życia powiedział

    Bardzo przydatne, chociaż zdecydowanie nie byłoby dobrze używać Bash do obliczeń matematycznych, liczenia miejsc po przecinku :)

    1.    Wada powiedział

      Panie elav, nadal mamy kalkulator basha 🙂 możemy użyć argumentu -l, aby użyć standardowej biblioteki matematycznej
      coś w tym stylu

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

      ha

      1.    pełen życia powiedział

        ????

      2.    Eliotime3000 powiedział

        Świetny. W ten sposób unikam kłopotów z instalacją XCalc przy korzystaniu z czystego X11.

      3.    KZKG ^ Gaara powiedział

        Och, nie znałam tego, świetnie !!

  2.   Clow_eriol powiedział

    Dzięki, to całkiem przydatne 😉

    1.    KZKG ^ Gaara powiedział

      Dzięki ^ _ ^

  3.   Noctuid powiedział

    Dziękuję Ci. Kalkulator systemowy był konkurentem dla podstawowych operacji.

    1.    KZKG ^ Gaara powiedział

      Dzięki za przeczytanie nas 🙂

  4.   Joaquin powiedział

    Dobra wskazówka!

  5.   Pedro lala powiedział

    Nie ja gusto