#!/bin/bash

#Comprobar paso de argumento
if [ $# -ne 2 ]; then
	echo "Uso: $0 <longitud> [tipo]"
	exit 1
fi

LONGITUD=$1
TIPO=$2

#Comprobar si la longitud es mayor a 0
if [ $LONGITUD -le 0 ]; then
	echo "ERROR: longitud debe ser mayor a 0"
fi

#Añadimos a CONJUNTO el tipo de rango que cogeremos de caracteres.
case $TIPO in
	alfa)
		CONJUNTO="a-zA-Z"
		;;
	num)
		CONJUNTO="0-9"
		;;
	alfanum)
		CONJUNTO="0-9a-zA-Z"
		;;
	*)
		echo "ERROR: Tipo $TIPO no existente"
		exit 1
		;;
esac

#Recolección del numero de caracteres determinado, gracias al fichero random. tr es translate y con -d dice que borre 
#esos caracteres que especifico y -c que haga lo contrario, asi que borra todo lo que no le digamos.
CADENA=$(tr -dc "$CONJUNTO" < /dev/urandom | head -c "$LONGITUD")
echo "$CADENA"