Puis-je faire des mathématiques de base dans Bash?

Réponses:

21

Tapez simplement bcdans le terminal. Tapez ensuite toutes les choses mathématiques après cela.

bcsignifie " b asic c alculator"

Tapez ensuite quitet entrez pour quitter.

DCIndieDev
la source
2
Pour plus de clarté, ce serait comme ça: écho 25-5 | bc
Medhat Helmy
Pour certains problèmes mathématiques, vous devrez peut-être le mettre entre guillemets, tels queecho '0.6 * 12' | bc
Goose
vous devrez peut-être également ajouter une échelle pour que la précision à virgule flottante fonctionne, par exempleecho "scale=2;557/3672" | bc
CpILL
60

Si nous parlons vraiment de Bash, pas de Bourne Shell (sh) ou d'autres shells, c'est facile.

Bash peut calculer des expressions de base avec $ ((expression)) et voici un exemple sur la façon dont vous aimeriez l'utiliser:

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

ou pour une utilisation interactive, juste

 écho $ ((7 * 3 + 4))
Seikku Kaita
la source
Cela semble être un bon coup, car cela fonctionne. Je ssh-ing dans l'un de mes clusters d'universités
Kurru
4
La $((expression))syntaxe fait partie de la shnorme POSIX et dérive de ksh.
geekosaur
6
Bash ne peut faire que de l'arithmétique entière. Il ne peut pas faire d'arithmétique en virgule flottante comme ksh93 ou zsh
fpmurphy
3
Cela aurait dû être la réponse acceptée.
Andreas Hartmann
10

Il existe un certain nombre d’utilitaires de ligne de commande pour effectuer des calculs simples:

$ expr 100 \* 4
400

$ echo '100 * 4' | bc
400

pour n'en nommer que deux. Soyez prudent en faisant la multiplication comme si vous n'échappez pas à votre * le shell peut essayer de l'interpréter comme un caractère générique.

Majenko
la source
9

Un autre est AWK:

awk 'BEGIN {print 4 + 3 / 12}'
En pause jusqu'à nouvel ordre.
la source
7

Eh bien, votre question a une réponse, mais considérez ceci:

La plupart des distributions Linux ont préinstallé python, alors pourquoi ne pas l'utiliser?

Tapez simplement

python

dans le terminal, puis faites toute l'arithmétique que vous voulez, comme

2+2

Sortira 4 :)

Vous pouvez également le faire directement à partir du terminal avec l' -cargument python.

python -c 'print 2+2'
Marcus Maxwell
la source
Sur mon ordinateur, la saisie pythonprend près de deux secondes pour démarrer. Plutôt ennuyeux si vous voulez simplement faire quelque chose de simple comme 2 + 2.
ShreevatsaR
utilisez python3 si vous ne voulez pas d'arrondi flottant. par exemple 2 / 30(python: 0) (python3: 0.06666666666666667)
hrvoj3e
et si vous n'avez installé que python3, mais que vous voulez arrondir, utilisez 2//30ouint(2/30)
mazunki
3

Ou Ruby. :)

Bien qu'il ne soit pas préinstallé, il est assez rapide.

Tapez irb, alors 2+2.

Ou juste ruby -e 'p 2+2'

tourbillon
la source
0

Perl est une autre option:

perl -E 'say 1/7'

les sorties

0.142857142857143
En pause jusqu'à nouvel ordre.
la source