Jak dokonać obliczeń dziesiętnych w BASH za pomocą BC

Jak dokonać obliczeń dziesiętnych w BASH za pomocą BC

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
Jak dokonać obliczeń dziesiętnych w BASH za pomocą BC

Zastosowane wymagania i konwencje oprogramowania

Wymagania oprogramowania i konwencje linii poleceń Linux
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