Bash BC
Gleitkommarithmetik in Bash
Basiswissen
Bash ist eine betriebssystemnahe Programmierumgebung (Shell) für Linux- und Unix-Rechner. BC ist eine Software, die einfache mathematische Berechnungen mit hoher Präzision ausführt. Mit BC lassen sich in Bash leicht automatisch große Texte mit eingebetteten Rechnungen erstellen. Hier stehen Tipps zu einigen häufigen Rechnungen.
Merkmale
- Ein String wird als Pipe in bc weitergegeben:
- Option -l aktiviert die (minimalistische) Mathematik Bibliothek:
- Beispiel: echo '4+3' | bc -l
- Liefert: 7
Operatoren in BC
- 10+5 liefert 15
- 10-5 liefert 5
- 10*5 liefert 50
- 10/5 liefert 2
- 10^5 liefert 100000
- sqrt(81) liefert die Wurzel, hier 9
- 10**2 ist nicht definiert
Trigonometrie (Radiant)
- c(3.14) liefert Zahl nahe -1 Kosinus ↗
- s(3.14) liefert Zahl nahe 0 Sinus ↗
- s(3.14)/c(3.14) liefert Zahl nahe 0 Tangens ↗
- a(3.14) liefert Arkustangens ↗
Logarithmen
- l(9) liefert etwa 2,2 Natürlicher Logarithmus ↗
- l(1000)/l(10) liefert 3 Dekadischer Logarithmus ↗
E-Funktion
- e(2) liefert etwa 7,39 (e hoch 2)
Sonstiges
- scale=2;sqrt(10) liefert 3,16 (scale rundet auf...)
- scale=0; 4.2/1 schneidet Nachkommas ab (geht nur mit /)
- ibase=2; interpretiert Input als Binärzahl
- obase=2; gibt Output als Binärzahl aus
Workarounds
- Tangens(x) = s(x)/c(x)
- Arcussinus(x) = a(x/sqrt(1–x*x))
- Arcuscosinus(x) = a(sqrt(1–x*x)/x)
- l(1000)/l(10) = dekadischer Logarithmus von 1000, liefert 3
- l(1024)/l(2) = binärer Logarithmus von 1024, liefert 10