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ür dc .

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


Modified text is an extract of the original Stack Overflow Documentation
Lizenziert unter CC BY-SA 3.0
Nicht angeschlossen an Stack Overflow