Caspita è vero non mi ricordavo. Potreste ricordarmi la differenza tra ${foo%,*} ${foo#*,} e ${foo%%,*} $foo{##*,} ?
L'equal tilde operator: "ciao" =~ [a] controlla se la 'a' è presente in 'ciao' oppure faccio "ciao" =~ .*[a].* ?
Comunque risolto, un pò farraginoso ma funzionante.
Codice: Seleziona tutto
#!/bin/bash
read usr_pass
function check_usr()
{
if [ ${#1} -lt 5 ] || [[ $1 =~ [^a-zA-Z0-9] ]] || [[ $1 =~ ^[0-9] ]]; then
echo "Errore Autenticazione">out
exit 12
fi
}
function check_pass()
{
if [ ${#1} -lt 3 ] || [[ $1 =~ [^a-z0-9] ]]; then
echo "Errore Autenticazione">out
exit 12
fi
}
function check_usr_pass()
{
usr=`expr match "$1" '\(.*,\)'`
if [ $? -ne 1 ]; then
usr=${usr:0:$(( ${#usr} -1 ))}
else
echo "Errore Autenticazione">out
exit 12
fi
check_usr $usr
pass=`expr match "$1" '.*,\(.*\)'`
check_pass $pass
}
# CHECK USERNAME AND PASSWORD #
check_usr_pass $usr_pass #
##############################
echo "username:$usr;password:$pass">out
exit 56
« Una volta eliminato l'impossibile, ciò che resta, per quanto improbabile, deve essere la verità. »
(Sherlock Holmes)