Rechnen auf der Shell

From Linuxwiki
Jump to navigation Jump to search

Rechnen auf der Shell ist nicht ganz so intuitiv wie mit dem Taschenrechner. Die einfachste Methode ist der bc.

$ bc

aufrufen, danach kann man loslegen:

bc 1.06.94
Copyright 1991-1994, 1997, 1998, 2000, 2004, 2006 Free Software Foundation, Inc.
This is free software with ABSOLUTELY NO WARRANTY.
For details type `warranty'.
34*27+26^2-378
1216

Natürlich wie immer Punkt vor Strich. Verlassen kann man den bc mit ctrl+d. Wer dividieren will, hat allerdings verloren, denn der bc rundet auf ganze Werte. In dem Fall hilft

$ bc -l

Für scriptgebundenes Rechnen hilft diese Methode allerdings wenig. In diesem Fall wird eine echo-Ausgabe in den bc hineingepipet. Beispiel:

$ x=7
$ y=$(echo "scale=2; $x/3"|bc -l)

Mit scale= kann man die Anzahl der Nachkommastellen festlegen.

anderes Beispiel:

pi=$(echo "scale=10; 4*a(1)" | bc -l)

(wobei a = arcus tangens)

Eine andere Rechenmethode ist expr, z.B.

$ expr 3 + 4
$ expr $y - 2
$ x=$(expr $y + 42)

Der Haken: Divisionen werden gerundet:

$ expr 54 / 7
7

Noch eine Methode:

$ echo $((3 + 4))

oder:

$ echo $[3+4]

Allerdings das gleiche Problem, Nachkommastellen gibt's keine.