Obliczenia matematyczne w Bash

Obliczenia matematyczne w Bash

Bash to potężny język skryptowy, którego można używać do różnych zadań, w tym obliczenia matematyczne. Jednak praca z liczbami w BASH może być trudna, szczególnie w przypadku arytmetyki o zmiennym punkcie, dużą liczbą i złożonymi obliczeniami.

W tym artykule zbadamy kilka wskazówek i wskazówek dotyczących obliczeń matematycznych w Bash.

Użyj odpowiedniego narzędzia do pracy

Bash ma kilka wbudowanych narzędzi do wykonywania obliczeń matematycznych, takich jak (()) I $ (()) operatorzy, Expr polecenie i pne Komenda. Każde narzędzie ma swoje mocne i słabe strony, a wybór właściwego może mieć duże znaczenie pod względem wydajności i dokładności.

  • „(())” I „$ (())” Operatorzy są najczęściej używanymi narzędziami do wykonywania arytmetyki całkowitej w Bash. Wspierają wszystkie podstawowe operacje arytmetyczne, a także operacje i porównania bitowe. Nie obsługują jednak arytmetyki o zmiennym punkcie, a ich precyzja jest ograniczona do wielkości typu liczb całkowitych w systemie.
  • „expr” Polecenie jest mocniejszym narzędziem, które obsługuje arytmetykę o zmiennym punkcie, a także operacje stringowe i wyrażenia regularne. Jest jednak wolniejszy niż operatory (()) i $ (()), a jego wyjście należy przechwycić za pomocą podstawienia dowodzenia.
  • 'pne Polecenie jest najbardziej wszechstronnym narzędziem do wykonywania obliczeń matematycznych w BASH. Obsługuje arytmetykę arbitralną, liczby złożone i zaawansowane funkcje, takie jak funkcje trygonometryczne i logarytmiczne. Wymaga to jednak oddzielnego procesu, który może spowolnić skrypt.

Działania arytmetyczne

Bash zapewnia podstawowe operacje arytmetyczne, takie jak dodanie, odejmowanie, mnożenie i podział. Operacje te można wykonać przy użyciu składni ekspansji arytmetycznej $ ((wyrażenie)). Na przykład następujące polecenie doda 3 i 4:

Echo $ ((3 + 4))
1Echo $ ((3 + 4))

To będzie wyprowadzone 7.

Podobnie możemy wykonywać inne operacje arytmetyczne, takie jak odejmowanie, mnożenie i podział:

Echo $ ((6 - 2)) echo $ ((4 * 5)) echo $ ((12/3))
123Echo $ ((6 - 2)) echo $ ((4 * 5)) echo $ ((12/3))

To będzie wyprowadzone 4, 20, I 4, odpowiednio.

Zmienne i operacje matematyczne

Możemy również używać zmiennych w naszych obliczeniach matematycznych. Na przykład:

a = 5 b = 2 echo $ ((a + b))
123a = 5b = 2echo $ ((a + b))

To będzie wyprowadzone 7.

Możemy również wykonywać operacje samych zmiennych, tak jak to:

a = 5 b = 2 echo $ ((a *= b))
123a = 5b = 2echo $ ((a *= b))

To będzie wyprowadzone 10. Zmienna A ma teraz wartość 10 po pomnożeniu przez B.

Operacje matematyczne zmiennoprzecinkowego

Bash nie obsługuje natywnie operacji matematycznych zmiennoprzecinkowych, ale możemy używać zewnętrznych narzędzi, takich jak BC i AWK do wykonania tych obliczeń.

'pne' to kalkulator wiersza poleceń, który obsługuje dowolną precyzję. Możemy go użyć do wykonywania takich obliczeń zmiennoprzecinkowych:

Skala echo "= 2; 10/3" | pne
1Skala echo "= 2; 10/3" | pne

To będzie wyprowadzone 3.33.

AWK to potężne narzędzie do przetwarzania tekstu, które obsługuje również operacje matematyczne. Możemy go użyć do wykonywania takich obliczeń zmiennoprzecinkowych:

Echo ”10.5 2.5 "| awk 'printf"%.2f \ n ", 1 $ / 2 $ '
1Echo ”10.5 2.5 "| awk 'printf"%.2f \ n ", 1 $ / 2 $ '

To będzie wyprowadzone 4.20.

Użyj funkcji, aby uprościć złożone obliczenia

Podczas pracy ze złożonymi obliczeniami w BASH często pomocne jest rozbicie ich na mniejsze, łatwiejsze do zarządzania funkcje. Funkcje umożliwiają zamknięcie bloku kodu i ponowne wykorzystanie go wielokrotnie w całym skrypcie, co może sprawić, że kod jest bardziej modułowy i łatwiejszy do zrozumienia.

Załóżmy na przykład, że chcesz obliczyć obszar koła, biorąc pod uwagę jego promień. Możesz utworzyć funkcję o nazwie „Oblicz_area” To zabiera promień jako argument i zwraca obszar:

#!/bin/bash pi = 3.14159 Calculate_area () lokalny promień = 1 $ obszar lokalny = $ (echo "$ pi * $ promień * $ promień" | bc) echo $ obszar promień = 5 obszar = $ (calculate_area $ promieni Z RADIUS $ RADIUS to $ obszar ”
12345678910111213#!/bin/bash pi = 3.14159 Calculate_area () lokalny promień = 1 $ obszar lokalny = $ (echo "$ pi * $ promień * $ promień" | bc) echo $ obszar promień = 5area = $ (calculate_area $ promień) echo "obszar koła z okrąg RADIUS $ RADIUS to $ obszar ”

Ten skrypt definiuje funkcję o nazwie Calculate_area, która przyjmuje promień jako argument, oblicza obszar za pomocą wzoru A = πr^2, i zwraca wynik. Główna część skryptu wywołuje funkcję z promieniem 5, przechwytuje dane wyjściowe za pomocą podstawienia polecenia i drukuje wynik na ekranie.

Użyj instrukcji warunkowych do obsługi błędów

Podczas wykonywania obliczeń matematycznych w BASH ważne jest, aby wdzięcznie obsługiwać błędy, szczególnie w przypadku wejścia użytkownika lub zewnętrznych źródeł danych. Jednym ze sposobów na to jest użycie instrukcji warunkowych do sprawdzenia błędów i przekazanie użytkownikowi informacji zwrotnej.

Załóżmy na przykład, że chcesz obliczyć czynnik liczby, podany jako dane wejściowe użytkownika. Możesz utworzyć skrypt, który używa pętli do obliczenia czynnikowego i warunkowego instrukcji, aby sprawdzić błędy:

#!/bin/bash odczyt -p „wprowadź numer:” num if ! [["$ num" = ~ ^[0-9]+$]]; Następnie echo „błąd:„ $ num ”nie jest prawidłową liczbą całkowitą” wyjście 1 fi czynnik = 1 dla (i = 1; i<=$num; i++)); do factorial=$(expr "$factorial * $i") done echo "The factorial of $num is $factorial"
123456789101112131415#!/bin/bash odczyt -p „wprowadź numer:” num if ! [["$ num" = ~ ^[0-9]+$]]; Następnie echo „błąd:„ $ num ”nie jest prawidłową liczbą całkowitą” wyjście 1FI stactorial = 1 dla ((i = 1; i<=$num; i++)); do factorial=$(expr "$factorial * $i")done echo "The factorial of $num is $factorial"

Ten skrypt odczytuje numer od użytkownika za pomocą polecenia odczytu i używa instrukcji warunkowej, aby sprawdzić, czy wejście jest prawidłową liczbą całkowitą. Jeśli wejście jest nieprawidłowe, skrypt drukuje komunikat o błędzie i wychodzi z niezerowym kodem stanu. Jeśli dane wejściowe jest prawidłowe, skrypt używa pętli do obliczenia czynnikowego i drukuje wynik na ekranie.

Wniosek

W tym artykule zbadaliśmy, jak wykonywać obliczenia matematyczne w Bash. Nauczyliśmy się, jak korzystać z podstawowych operacji arytmetycznych, zmiennych i narzędzi zewnętrznych, takich jak pne I Awk Aby wykonywać operacje matematyczne w Bash. Dzięki tym narzędziom do naszej dyspozycji możemy wykonywać różne obliczenia matematyczne w Bash, od podstawowej arytmetyki po bardziej złożone operacje.