Algo tan simple como esto y no sé por qué me está dando problemas:
#!/bin/bash
echo "Escriba un numero entre 1 y 20:"
read vx
if [[ "$vx" < "1" || "$vx" > "20" ]]; then
echo "Fuera del rango"
fi
La condición trabaja bien cuando pongo un número menor a 1 o mayor a 20 (como debe de ser). El problema es que también da verdadero con 3,4,5,6,7,8 y 9. (!)
Con el resto de números marcha bien.
Lo ejecuto en linux como:
./script.sh
¿Alguien ve el problema en esto?