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
bcist 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 errorunter 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