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ść.

DCIndieDev
źródło
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))
Seikku Kaita
źródło
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.

Majenko
źródło
9

Kolejnym jest AWK:

awk 'BEGIN {print 4 + 3 / 12}'
Wstrzymano do odwołania.
źródło
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'
Marcus Maxwell
źródło
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'

wir
źródło
0

Perl to kolejna opcja:

perl -E 'say 1/7'

wyjścia

0.142857142857143
Wstrzymano do odwołania.
źródło