sábado, 13 de octubre de 2012

Script bash - validar dni

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