read pass=$(cat) erg=0 grep -q '[0-9]' <<<"$pass" || erg=1 grep -q '[[:lower:]]' <<<"$pass" || : $(( erg++ )) grep -q '[[:upper:]]' <<<"$pass" || : $(( erg++ )) grep -q '[!@#$%^&*()+-]' <<<"$pass" || : $(( erg++ )) (( 6 - ${#pass} > erg )) && echo $(( 6 - ${#pass} )) || echo $erg