Formato de versiones - X.X.X.X.
Donde X - número.
¿Cuál es la mejor manera de comparar dos versiones?
utilizo siguiente código:¿Cómo comparar versiones de algunos productos en unix ksh shell?
compareVersions()
{
VER_1=$1
VER_2=$2
print -R "$VER_1"| IFS=. read v1_1 v1_2 v1_3 v1_4
print -R "$VER_2"| IFS=. read v2_1 v2_2 v2_3 v2_4
RESULT="0"
if [[ "${v1_1}" -lt "${v2_1}" ]]
then
RESULT="-1"
elif [[ "${v1_1}" -gt "${v2_1}" ]]
then
RESULT="1"
elif [[ "${v1_2}" -lt "${v2_2}" ]]
then
RESULT="-1"
elif [[ "${v1_2}" -gt "${v2_2}" ]]
then
RESULT="1"
elif [[ "${v1_3}" -lt "${v2_3}" ]]
then
RESULT="-1"
elif [[ "${v1_3}" -gt "${v2_3}" ]]
then
RESULT="1"
elif [[ "${v1_4}" -lt "${v2_4}" ]]
then
RESULT="-1"
elif [[ "${v1_4}" -gt "${v2_4}" ]]
then
RESULT="1"
fi
echo "$RESULT"
}
Pero no me gusta que - es muy sencillo.
¿Hay alguna forma correcta de comparar versiones?
¿Estás seguro de que no es ksh en lugar de Bash? Bash no tiene el comando 'print' y no puede conectarse a su' lectura'. –
Sí, esto es ksh. He reparado las etiquetas. –
"no puedes conectar con su lectura" - por supuesto que puedes. 'printf" abc \ n "| {leer x; printf "got $ x \ n"; } ' –