5 nyttige måder at gøre aritmetik på Linux Terminal


I denne artikel viser vi dig forskellige nyttige måder at gøre aritmetik på i Linux-terminalen. I slutningen af denne artikel lærer du forskellige grundlæggende praktiske måder at lave matematiske beregninger på kommandolinjen.

Lad os komme igang!

1. Brug af Bash Shell

Den første og nemmeste måde at gøre grundlæggende matematik på Linux CLI er at bruge dobbelt parentes. Her er nogle eksempler, hvor vi bruger værdier, der er gemt i variabler:

$ ADD=$(( 1 + 2 ))
$ echo $ADD
$ MUL=$(( $ADD * 5 ))
$ echo $MUL
$ SUB=$(( $MUL - 5 ))
$ echo $SUB
$ DIV=$(( $SUB / 2 ))
$ echo $DIV
$ MOD=$(( $DIV % 2 ))
$ echo $MOD

2. Brug af expr Command

Kommandoen expr evaluerer udtryk og udskriver værdien af det angivne udtryk til standardoutput. Vi vil se på forskellige måder at bruge expr til at lave simpel matematik, sammenligne, øge værdien af en variabel og finde længden af en streng.

Følgende er nogle eksempler på at lave enkle beregninger ved hjælp af kommandoen expr. Bemærk, at mange operatører skal undslippes eller citeres for skaller, for eksempel * -operatoren (vi vil se mere under sammenligning af udtryk).

$ expr 3 + 5
$ expr 15 % 3
$ expr 5 \* 3
$ expr 5 – 3
$ expr 20 / 4

Dernæst vil vi dække, hvordan man foretager sammenligninger. Når et udtryk evalueres til falsk, vil expr udskrive en værdi på 0, ellers udskrives det 1.

Lad os se på nogle eksempler:

$ expr 5 = 3
$ expr 5 = 5
$ expr 8 != 5
$ expr 8 \> 5
$ expr 8 \< 5
$ expr 8 \<= 5

Du kan også bruge kommandoen expr til at øge værdien af en variabel. Se på følgende eksempel (på samme måde kan du også sænke værdien af en variabel).

$ NUM=$(( 1 + 2))
$ echo $NUM
$ NUM=$(expr $NUM + 2)
$ echo $NUM

Lad os også se på, hvordan man finder længden på en streng ved hjælp af:

$ expr length "This is linux-console.net"

For mere information især om betydningen af ovenstående operatører, se expr man side:

$ man expr

3. Brug af bc Command

bc (Basic Calculator) er et kommandolinjeprogram, der indeholder alle de funktioner, du forventer af en simpel videnskabelig eller økonomisk regnemaskine. Det er specifikt nyttigt til at lave matematik med flydende punkt.

Hvis bc-kommandoen ikke er installeret, kan du installere den ved hjælp af:

$ sudo apt install bc   #Debian/Ubuntu
$ sudo yum install bc   #RHEL/CentOS
$ sudo dnf install bc   #Fedora 22+

Når det er installeret, kan du køre det i interaktiv tilstand eller ikke-interaktivt ved at videregive argumenter til det - vi vil se på begge tilfælde. For at køre det interaktivt skal du skrive kommandoen bc på kommandoprompten og begynde at lave matematik som vist.

$ bc 

De følgende eksempler viser, hvordan man bruger bc ikke-interaktivt på kommandolinjen.

$ echo '3+5' | bc
$ echo '15 % 2' | bc
$ echo '15 / 2' | bc
$ echo '(6 * 2) - 5' | bc

Flagget -l bruges til standardskalaen (cifre efter decimaltegnet) til 20, for eksempel:

$ echo '12/5 | bc'
$ echo '12/5 | bc -l'

4. Brug af Awk Command

Awk er et af de mest fremtrædende tekstbehandlingsprogrammer i GNU/Linux. Den understøtter addition, subtraktion, multiplikation, division og modulus aritmetiske operatorer. Det er også nyttigt til at udføre matematik med flydende punkt.

Du kan bruge den til at lave grundlæggende matematik som vist.

$ awk 'BEGIN { a = 6; b = 2; print "(a + b) = ", (a + b) }'
$ awk 'BEGIN { a = 6; b = 2; print "(a - b) = ", (a - b) }'
$ awk 'BEGIN { a = 6; b = 2; print "(a *  b) = ", (a * b) }'
$ awk 'BEGIN { a = 6; b = 2; print "(a / b) = ", (a / b) }'
$ awk 'BEGIN { a = 6; b = 2; print "(a % b) = ", (a % b) }'

Hvis du er ny hos Awk, har vi en komplet række guider, der kan komme i gang med at lære det: Lær Awk Tekstbehandlingsværktøj.

5. Brug af faktorkommando

Faktorkommandoen bruges til at nedbryde et heltal i primfaktorer. For eksempel:

$ factor 10
$ factor 127
$ factor 222
$ factor 110  

Det er alt! I denne artikel har vi forklaret forskellige nyttige måder at gøre aritmetik på i Linux-terminalen. Du er velkommen til at stille spørgsmål eller dele tanker om denne artikel via feedbackformularen nedenfor.