Jak dokonać obliczeń dziesiętnych w BASH za pomocą BC
- 3644
- 418
- Igor Madej
Obliczenia dziesiętne są czasami wymagane w BASH. Idiomy programowania standardowego programowania obliczeń ($ []) nie jest w stanie zapewnić dziesiętnego wyjścia. Chociaż możemy oszukać go do obliczania (ale nie generowania) wyjścia dziesiętnego poprzez pomnożenie liczb przez na przykład współczynnik 1000, a następnie wykonywanie podziału na podstawie tekstu, jest to brzydkie obejście i tworzy złożony kod kodu. Istnieje jednak użyteczność w BASH, która może natywnie wykonywać obliczenia dziesiętne bez żadnych sztuczek i obejść!
W tym samouczku się nauczysz:
- Jak używać BC do wykonywania obliczeń dziesiętnych
- Jak wykonać obliczenia dziesiętne w wierszu poleceń BASH lub z scenariuszy
- Jak używać zmiennych do przechowywania wyników uzyskanych przez BC
- Jak używać zmiennych w dalszych obliczeniach
- Jak uniknąć zmiennej Bash, cytując błędy
Zastosowane wymagania i konwencje oprogramowania
Kategoria | Wymagania, konwencje lub wersja oprogramowania |
---|---|
System | Niezależny od rozkładu Linuksa |
Oprogramowanie | Wiersz poleceń Bash, system oparty na Linuksie |
Inny | Wszelkie narzędzie, które nie jest zawarte w skorupce Bash domyślnie można zainstalować za pomocą za pomocą sudo apt-get instal instal narzędzie (Lub Mnij instalacja dla systemów opartych na Redhat) |
Konwencje | # - Wymaga wykonywania Linux -Commands z uprawnieniami root bezpośrednio jako użytkownik root lub za pomocą sudo Komenda$-Wymaga wykonania Linux-commands jako zwykłego niepewnego użytkownika |
Instalowanie BC
Aby zainstalować BC na Ubuntu, Mint lub dowolnym innym systemie operacyjnym opartym na Debian/APT, wpisz:
$ sudo apt instal BC
Aby zainstalować BC w Fedora, Redhat lub dowolnym innym systemie operacyjnym Redhat/Yum, Typ:
$ sudo yum instaluj BC
Domyślne obliczenia bash
Możemy zrobić prosty problem podziału bezpośrednio w Bash:
$ echo $ [13/4] 3
Próbuje i dzieli 13 na 4 za pomocą standardowego idiomu Bash $ [obliczenia]
. Chociaż jest to dość wszechstronne:
$ echo "1+1? Odpowiedź brzmi: $ [1 + 1] "1 + 1? Odpowiedź brzmi: 2
Niestety nie jest w stanie wyprowadzić dziesiętnych. Obejścia tego problemu są złożone i brzydkie, jak opisano wcześniej.
BC na ratunek
Bardziej eleganckim rozwiązaniem jest użycie pne
do obliczeń.
Podczas gdy BC może być również używane do tych samych obliczeń, co już możliwe w BASH:
$ echo '13 / 4 '| BC 3
Jest również w stanie uzyskać wyniki dziesiętne za pomocą -L
(-L
definiuje standardową bibliotekę matematyczną) pne
:
$ echo '13 / 4 '| BC -L 3.25000000000000000000
Przechowywanie wyników jako zmienne
Możemy również przechowywać wynik jako zmienną za pomocą subshell:
$ Wynika = $ (echo '13/4 '| bc -l) $ echo $ wynik 3.25000000000000000000
Tutaj zastosowaliśmy te same obliczenia jak w ostatnim przykładzie, ale użyliśmy subshell $ ()
Aby wykonać obliczenia. To pozwala nam łatwo przechowywać wynik w zmiennej. Możemy teraz użyć tej zmiennej dalej w innych obliczeniach lub po prostu wysłać wynik, jak pokazano powyżej. Aby użyć go w innym obliczeniach, możesz:
$ echo "$ wynik * 4" | BC -L 13.00000000000000000000
Należy pamiętać, w jaki sposób użyliśmy podwójnych cytatów, aby zdefiniować naszą arytmetykę. Powodem tego jest to, że chcemy $ Wynik
zmienne, które należy zastąpić swoją rzeczywistą wartością. Gdybyśmy użyli pojedynczych cytatów ('
) Zamiast tego operacja nie powiodłaby się, ponieważ nazwa zmiennej zostałaby uznana za dosłowne wejście. Innymi słowy, nie doszło do żadnego zastąpienia jego wartości, jak widzimy z następującego wyjścia:
$ echo '$ wynik * 4' | BC -L (standard_in) 1: Nielegalny znak: $ (standard_in) 1: Błąd składni
Gotowy, aby dowiedzieć się więcej Bash? Przeglądaj naszą użyteczną serię linii poleceń i sztuczek!
Wniosek
W tym artykule zbadaliśmy, jak dokonywać obliczeń dziesiętnych za pomocą pne
w wierszu poleceń. Te same polecenia działają dobrze, gdy są używane z skryptu powłoki. Przyjrzeliśmy się również niedociągnięciom stosowania standardowych idiomów obliczania BASH, a także za pomocą zmiennych w połączeniu z pne
za pomocą podseksów. Wreszcie odkryliśmy, co się stanie, jeśli niepoprawnie cytuje zmienne w Bash.
Powiązane samouczki Linux:
- Ubuntu 20.04 sztuczki i rzeczy, których możesz nie wiedzieć
- Przydatne przykłady i sztuczki
- Przydatne przykłady i sztuczki
- Bash Advanced zmienne idiomy dla wrażliwości na przypadki…
- Przydatne przykłady i wskazówki dotyczące linii poleceń Bash - część 4
- Przydatne przykłady i wskazówki dotyczące linii poleceń Bash - część 2
- Przydatne przykłady i sztuczki
- Jak przetrwać dane do PostgreSQL w Javie
- Bash Tła zarządzanie procesami
- Podstawy matematyki komputerowej: binarny, dziesiętny, sześciokadcica, ośmiorot