Bash Comparaciones numericas


Ejemplo

Las comparaciones numéricas utilizan los operadores -eq y amigos.

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

Hay seis operadores numéricos:

  • -eq igual
  • -ne es igual
  • -le menos o igual
  • -lt menos que
  • -ge mayor o igual
  • -gt mayor que

Tenga en cuenta que los operadores < y > dentro de [[ … ]] comparan cadenas, no números.

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

Los dos lados deben ser números escritos en decimal (o en octal con un cero inicial). Alternativamente, use la sintaxis de expresión aritmética ((…)) , que realiza cálculos de enteros en una sintaxis similar a C / Java / ...

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