Aquí tenéis un pequeño script en bash, para validar si un DNI es correcto o no.
#!/bin/bash
cadena="TRWAGMYFPDXBNJZSQVHLCKET";
longitud=${#1}
if [ "$longitud" -eq 9 ]
then
posicion=`expr ${1:0:8} % 23`
letra=${cadena:posicion:1}
letradaentrada=`echo ${1:8} | tr [a-z] [A-Z]`
if [ $letra == $letradaentrada ]
then
echo "número DNI correcto"
exit 0
else
echo "letra inválida"
exit 1
fi
else
echo "Longitud errónea"
exit 1
fi
exit 0
Ejecutamos d la siguiente manera.
# bash dni.sh 41033454s
letra inválida
No hay comentarios:
Publicar un comentario