Obliczenia matematyczne w Bash
- 739
- 59
- Seweryn Augustyniak
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:
1 | Echo $ ((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))123 | Echo $ ((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))123 | a = 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))123 | a = 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" | pne1 | Skala 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 $ '1 | Echo ”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.
- « Bash Specjalne zmienne (0 USD, $?, $#, [e -mail chroniony]</a>, $$, $*)
- 15 Zaawansowane techniki JavaScript każdy programista powinien wiedzieć »