Bash
Mathematik
Suche…
Mathe mit DC
dc
ist eine der ältesten Sprachen unter Unix.
Es wird die umgekehrte Poliernotation verwendet , dh, Sie stapeln zuerst Zahlen und dann Operationen. Zum Beispiel wird 1+1
als 1 1+
.
Um ein Element von oben zu drucken, verwenden Sie den Befehl p
echo '2 3 + p' | dc
5
or
dc <<< '2 3 + p'
5
Sie können das oberste Element viele Male drucken
dc <<< '1 1 + p 2 + p'
2
4
Für negative Zahlen verwenden Sie das Präfix _
dc <<< '_1 p'
-1
Sie können auch Großbuchstaben von A to F
für Zahlen zwischen 10 and 15
und verwenden .
als Dezimalpunkt
dc <<< 'A.4 p'
10.4
dc
verwendet eine beliebige Genauigkeit, was bedeutet, dass die Genauigkeit nur durch den verfügbaren Speicher begrenzt ist. Standardmäßig ist die Genauigkeit auf 0 Dezimalstellen eingestellt
dc <<< '4 3 / p'
1
Mit dem Befehl k
können wir die Genauigkeit erhöhen. 2k
verwenden
dc <<< '2k 4 3 / p'
1.33
dc <<< '4k 4 3 / p'
1.3333
Sie können es auch mehrzeilig verwenden
dc << EOF
1 1 +
3 *
p
EOF
6
bc
ist ein Präprozessor fürdc
.
Mathe mit bc
bc
ist eine Rechnersprache mit beliebiger Genauigkeit. Es kann interaktiv verwendet werden oder von der Befehlszeile aus ausgeführt werden.
Beispielsweise kann das Ergebnis eines Ausdrucks ausgedruckt werden:
echo '2 + 3' | bc
5
echo '12 / 5' | bc
2
Für die Floating-Post-Arithmetik können Sie die Standardbibliothek bc -l
importieren:
echo '12 / 5' | bc -l
2.40000000000000000000
Es kann zum Vergleichen von Ausdrücken verwendet werden:
echo '8 > 5' | bc
1
echo '10 == 11' | bc
0
echo '10 == 10 && 8 > 3' | bc
1
Mathematik mit bash-Fähigkeiten
Arithmetische Berechnungen können auch ausgeführt werden, ohne dass andere Programme wie diese beteiligt sind:
Multiplikation:
echo $((5 * 2))
10
Einteilung:
echo $((5 / 2))
2
Modulo:
echo $((5 % 2))
1
Potenzierung:
echo $((5 ** 2))
25
Mathe mit Ausdruck
expr
oder Evaluate expressions
wertet einen Ausdruck aus und schreibt das Ergebnis in die Standardausgabe
Grundrechenarten
expr 2 + 3
5
Beim Multiplizieren müssen Sie das *
-Zeichen verlassen
expr 2 \* 3
6
Sie können auch Variablen verwenden
a=2
expr $a + 3
5
Denken Sie daran, dass es nur Ganzzahlen unterstützt, also Ausdruck wie dieser
expr 3.0 / 2
wird einen Fehler expr: not a decimal number: '3.0'
.
Es unterstützt reguläre Ausdrücke zum Anpassen von Mustern
expr 'Hello World' : 'Hell\(.*\)rld'
o Wo
Oder suchen Sie den Index des ersten Zeichens in der Suchzeichenfolge
Dies führt zu einem
expr: syntax error
unter Mac OS X , da BSD-Ausdruck ohne Indexbefehl verwendet wird, während Ausdruck unter Linux im Allgemeinen GNU-Ausdruck ist
expr index hello l
3
expr index 'hello' 'lo'
3