Unix / Linux - Esempio di operatori aritmetici della shell

I seguenti operatori aritmetici sono supportati da Bourne Shell.

Assumi variabile a detiene 10 e variabile b detiene 20 quindi -

Operatore Descrizione Esempio
+ (Aggiunta) Aggiunge valori su entrambi i lati dell'operatore `expr $ a + $ b` darà 30
- (Sottrazione) Sottrae l'operando di destra dall'operando di sinistra `expr $ a - $ b` darà -10
* (Moltiplicazione) Moltiplica i valori su entrambi i lati dell'operatore `expr $ a \ * $ b` darà 200
/ (Divisione) Divide l'operando sinistro per l'operando destro `expr $ b / $ a` darà 2
% (Modulo) Divide l'operando di sinistra per l'operando di destra e restituisce il resto `expr $ b% $ a` darà 0
= (Assegnazione) Assegna l'operando destro all'operando sinistro a = $ b assegnerebbe il valore di b in a
== (uguaglianza) Confronta due numeri, se entrambi sono uguali restituisce vero. [$ a == $ b] restituirà false.
! = (Non uguaglianza) Confronta due numeri, se entrambi sono diversi restituisce vero. [$ a! = $ b] restituirà true.

È molto importante capire che tutte le espressioni condizionali dovrebbero essere all'interno di parentesi quadre con spazi attorno ad esse, per esempio [ $a == $b ] è corretto mentre, [$a==$b] non è corretto.

Tutti i calcoli aritmetici vengono eseguiti utilizzando numeri interi lunghi.

Esempio

Ecco un esempio che utilizza tutti gli operatori aritmetici:

#!/bin/sh

a=10
b=20

val=`expr $a + $b`
echo "a + b : $val"

val=`expr $a - $b`
echo "a - b : $val"

val=`expr $a \* $b`
echo "a * b : $val"

val=`expr $b / $a`
echo "b / a : $val"

val=`expr $b % $a`
echo "b % a : $val"

if [ $a == $b ]
then
   echo "a is equal to b"
fi

if [ $a != $b ]
then
   echo "a is not equal to b"
fi

Lo script sopra produrrà il seguente risultato:

a + b : 30
a - b : -10
a * b : 200
b / a : 2
b % a : 0
a is not equal to b

I seguenti punti devono essere considerati quando si utilizzano gli operatori aritmetici:

  • Devono essere presenti degli spazi tra gli operatori e le espressioni. Ad esempio, 2 + 2 non è corretto; dovrebbe essere scritto come 2 + 2.

  • L'espressione completa dovrebbe essere racchiusa tra ‘ ‘, chiamate virgolette.

  • Dovresti usare \ sul * simbolo per la moltiplicazione.

  • if...then...fi dichiarazione è una dichiarazione decisionale che è stata spiegata nel prossimo capitolo.

unix-basic-operators.htm