Bash Confronti numerici


Esempio

I confronti numerici usano gli operatori e gli amici -eq

if [[ $num1 -eq $num2 ]]; then
  echo "$num1 == $num2"
fi
if [[ $num1 -le $num2 ]]; then
  echo "$num1 <= $num2"
fi

Esistono sei operatori numerici:

  • -eq uguale
  • -ne è uguale
  • -le meno o uguale
  • -lt meno di
  • -ge maggiore o uguale
  • -gt maggiore di

Nota che gli operatori < e > all'interno di [[ … ]] confrontano le stringhe, non i numeri.

if [[ 9 -lt 10 ]]; then
  echo "9 is before 10 in numeric order"
fi
if [[ 9 > 10 ]]; then
  echo "9 is after 10 in lexicographic order"
fi

I due lati devono essere numeri scritti in decimale (o in ottale con uno zero iniziale). In alternativa, utilizzare la sintassi di espressione aritmetica ((…)) , che esegue calcoli integer in una sintassi C / Java / ... -like.

x=2
if ((2*x == 4)); then
  echo "2 times 2 is 4"
fi
((x += 1))
echo "2 plus 1 is $x"