Toda vez que você executar o script pass
será executado. Você deve envolvê-lo em uma função como choose()
. Por exemplo:
genpass()
{
pass="$({ choose '!@#$%^\&'
choose '0123456789'
choose 'abcdefghijklmnopqrstuvwxyz'
choose 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
for i in $( seq 1 $(( 4 + RANDOM % 8 )) )
do
choose '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'
done
} | sort -R | awk '{printf "%s",$1}')"
echo "${pass}"
}
Em outra nota:
O uso de $RANDOM
deve ser evitado ( Referência ) para senha & geração de chave de criptografia.
O seguinte é mais simples e criptograficamente mais strong;
choose(){ echo "$(< /dev/urandom tr -dc _A-Z-a-z-0-9 | head -c16)" }