Czy mogę wykonywać podstawowe matematyki w Bash?


Odpowiedzi:


21

Wystarczy wpisać bcw terminalu. Następnie wpisz wszystkie matematyki.

bcoznacza „ b wo c alculator”

Następnie wpisz quiti wprowadź, aby wyjść.


2
Dla jasności byłoby to tak: echo 25-5 | bc
Medhat Helmy

W przypadku niektórych problemów matematycznych może być konieczne zawinięcie go w cudzysłów, na przykładecho '0.6 * 12' | bc
Goose

może być konieczne dodanie skali, aby uzyskać precyzję zmiennoprzecinkową, tj.echo "scale=2;557/3672" | bc
CpILL

60

Jeśli tak naprawdę mówimy o Bash, a nie Bourne Shell (sh) lub innych powłokach, jest to łatwe.

Bash może obliczyć podstawowe wyrażenia za pomocą $ ((wyrażenie)), a oto przykład, w jaki sposób możesz go użyć:

 a = 3
 b = 4
 c = $ ((7 * a + b))
 echo $ c

lub tylko do użytku interaktywnego

 echo $ ((7 * 3 + 4))

Wydaje się to być właściwe bash, ponieważ to działa.
Wpisuję

4
$((expression))Składni część POSIX shstandardu i pochodzących od ksh.
geekozaur

6
Bash może wykonywać tylko arytmetykę liczb całkowitych. Nie może wykonywać arytmetyki zmiennoprzecinkowej, takiej jak ksh93 lub zsh
fpmurphy

3
To powinna być zaakceptowana odpowiedź.
Andreas Hartmann

10

Istnieje wiele narzędzi wiersza polecenia do wykonywania prostych obliczeń:

$ expr 100 \* 4
400

$ echo '100 * 4' | bc
400

wymienić tylko dwa z nich. Zachowaj ostrożność przy mnożeniu, tak jakbyś nie uciekł od * powłoki, która może spróbować zinterpretować ją jako symbol wieloznaczny.



7

Odpowiedź na twoje pytanie, ale zastanów się:

Większość dystrybucji Linuksa ma preinstalowanych Python, więc dlaczego go nie użyć?

Po prostu wpisz

python

w terminalu, a następnie wykonaj całą arytmetykę, jak chcesz

2+2

Wyjdzie 4 :)

Możesz to również zrobić bezpośrednio z terminala za pomocą -cargumentu python.

python -c 'print 2+2'

Na moim komputerze pisanie pythonzajmuje prawie dwie sekundy. Raczej denerwujące, jeśli chcesz po prostu zrobić coś prostego, takiego jak 2 + 2.
ShreevatsaR

użyj python3, jeśli nie chcesz zaokrąglać liczb zmiennoprzecinkowych. na przykład 2 / 30(Python: 0) (python3: 0.06666666666666667)
hrvoj3e

a jeśli masz tylko zainstalowany Python3, ale chcesz zaokrąglić, użyj 2//30lubint(2/30)
mazunki

3

Lub Ruby. :)

Chociaż może nie być wstępnie zainstalowany, jest dość szybki.

Wpisz irbwięc 2+2.

Lub tylko ruby -e 'p 2+2'


Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.