Cu comanda potrivită, puteți face orice, de la matematică simplă la calcule destul de complexe pe Linux.
Linia de comandă Linux oferă câteva instrumente foarte utile pentru a vă permite să efectuați calcule matematice. Acest tutorial prezintă o serie de comenzi pe care le puteți utiliza și demonstrează câteva tehnici pentru a vă face calculele fără probleme.
Comanda expr
Cea mai evidentă comandă pentru a face matematică pe linia de comandă Linux este expr ca în „expresie”. Funcționează cu expresii aritmetice și oferă răspunsuri aproape instantanee la solicitările dumneavoastră chiar și atunci când calculele sunt destul de complexe. Iată câteva exemple destul de simple. Observați bara oblică inversă necesară pentru a preveni interpretarea asteriscului ca un wild card.
$ expr 11 \* 11
121
$ expr 11 \* 11 \* 11
1331
În plus, nu este nevoie de caracterele bară oblică inversă, în afară de a prefața caracterul „wild card” (*). Celelalte caractere care reprezintă calcule numerice nu le necesită.
$ expr 11 \* 11 - 3
118
Iată câteva comparații ale modului în care funcționează acești operatori.
$ expr 7 + 4
11
$ expr 7 - 4
3
$ expr 7 / 4
1
$ expr 7 % 4
3
$ expr 7 \* 4
28
A patra operație de mai sus (%) oferă restul pentru cea de dinainte (/).
De asemenea, puteți atribui valori variabilelor și puteți utiliza acele nume de variabile în calculele dumneavoastră, așa cum se arată în exemplele de mai jos.
$ num1=11
$ num2=17
$ expr $num1 + $num2
28
Comanda time
Folosind comanda time, puteți măsura cât de repede durează operația de înmulțire cu patru numere de mai jos. Se termină în câteva miimi de secundă pe Raspberry Pi 4
time expr 123 \* 245 \* 88 \* 314
832690320
real 0m0.006s
user 0m0.004s
sys 0m0.003s
Compararea șirurilor cu expr
Comanda expr oferă, de asemenea, o modalitate de a compara șirurile, dar rețineți că trebuie furnizat mai întâi șirul mai lung.
$ expr Linux : Linux
5
$ expr LinuxNow : Linux
5
$ expr Linux : LinuxNow
0
Obțineți ajutor
Puteți obține ajutor la utilizarea comenzii expr utilizând opțiunea –-help (expr –-help). Cea mai mare parte va explica cum funcționează diferitele expresii. Include explicații precum acestea:
Usage: expr EXPRESSION
or: expr OPTION
--help display this help and exit
--version output version information and exit
Print the value of EXPRESSION to standard output. A blank line below
separates increasing precedence groups. EXPRESSION may be:
ARG1 | ARG2 ARG1 if it is neither null nor 0, otherwise ARG2
ARG1 & ARG2 ARG1 if neither argument is null or 0, otherwise 0
ARG1 < ARG2 ARG1 is less than ARG2
ARG1 <= ARG2 ARG1 is less than or equal to ARG2
ARG1 = ARG2 ARG1 is equal to ARG2
ARG1 != ARG2 ARG1 is unequal to ARG2
ARG1 >= ARG2 ARG1 is greater than or equal to ARG2
ARG1 > ARG2 ARG1 is greater than ARG2
ARG1 + ARG2 arithmetic sum of ARG1 and ARG2
ARG1 - ARG2 arithmetic difference of ARG1 and ARG2
ARG1 * ARG2 arithmetic product of ARG1 and ARG2
ARG1 / ARG2 arithmetic quotient of ARG1 divided by ARG2
ARG1 % ARG2 arithmetic remainder of ARG1 divided by ARG2
STRING : REGEXP anchored pattern match of REGEXP in STRING
match STRING REGEXP same as STRING : REGEXP
substr STRING POS LENGTH substring of STRING, POS counted from 1
index STRING CHARS index in STRING where any CHARS is found, or 0
length STRING length of STRING
+ TOKEN interpret TOKEN as a string, even if it is a
keyword like 'match' or an operator like '/'
( EXPRESSION ) value of EXPRESSION
Beware that many operators need to be escaped or quoted for shells.
Comparisons are arithmetic if both ARGs are numbers, else lexicographical.
Pattern matches return the string matched between \( and \) or null; if
\( and \) are not used, they return the number of characters matched or 0.
Exit status is 0 if EXPRESSION is neither null nor 0, 1 if EXPRESSION is null
or 0, 2 if EXPRESSION is syntactically invalid, and 3 if an error occurred.
GNU coreutils online help: <https://www.gnu.org/software/coreutils/>
Full documentation <https://www.gnu.org/software/coreutils/expr>
or available locally via: info '(coreutils) expr invocation'
Comenzile de mai jos sunt exemple de comenzi expr.
$ expr 60 / 30 \* 100
200
$ expr 20 / 30 \* 100
0
Hopa! Ce s-a întâmplat în al doilea exemplu de mai sus? Comanda expr nu va păstra numerele mai mici de 0. Deci, trebuie să utilizați o altă comandă.
Comanda bc
Comanda bc poate fi folosită atunci când trebuie să vedem zecimale. Valoarea scalei vă permite să specificați câte zecimale doriți să vedeți.
$ echo "scale = 2; 30 * 75 / 40" | bc
56.25
$ echo "scale = 3; 30 * 75 / 40" | bc
56.250
Comanda Factor
Comanda factor calculează factorii care înmulțiți vor rezulta în numărul inițial.
$ factor 81
81: 3 3 3 3
$ factor 123
123: 3 41
Comanda Bash
Rețineți că puteți face și câteva calcule numerice simple folosind bash, așa cum se arată în acest script de bază. Observați cum comparația numerică este închisă în paranteze duble.
#!/bin/bash
echo -n "x: "
read x
echo -n "y: "
read y
if (( x > y )); then
echo "x > y"
else
echo "x ! > y"
fi
Concluzii
Puteți face orice, de la calcule simple la calcule destul de complexe pe Linux. Doar alegeți comanda potrivită pentru a ușura sarcina și fiți gata pentru un răspuns surprinzător de rapid.