He escrito una secuencia de comandos que actualiza una versión en un determinado archivo. Necesito comprobar que la entrada para el usuario está en formato de versión, así que no termino de agregar el número que no se necesita en esos archivos importantes. La forma en que lo hice es agregando un nuevo valor version_check, donde elimino mi patrón de expresiones regulares y luego un control if.Cómo verificar una cadena de entrada en bash está en formato de versión (n1.n2.n3)
version=$1
version_checked=$(echo $version | sed -e '/[0-9]\+\.[0-9]\+\.[0-9]/d')
if [[ -z $version_checked ]]; then
echo "$version is the right format"
else
echo "$version_checked is not in the right format, please use XX.XX.XX format (ie: 4.15.3)"
exit
fi
que funciona bien para XX.XX y XX.XX.XX sino que también permite xx.xx.xx.xx y XX.XX.XX.XX.XX etc .. por lo que si el usuario comete un error ingresará datos incorrectos en el archivo. ¿Cómo puedo hacer que el sedgegege SÓLO permita 3 pares de números separados por un punto?
¡Dulce! eso funciona muy bien, muchas gracias – Llanos
De nada. No se olvide de aceptar la respuesta para cerrar este Q & A :) – anubhava