Você precisa usar uma cotação de substituição de comandos , como
PASSWORD='date +%s|sha256sum|base64|head -c 32'
echo $PASSWORD
ou você pode fazer isso,
PASSWORD=$(date +%s|sha256sum|base64|head -c 32)
echo $PASSWORD
Estou usando a seguinte linha para criar uma senha gerada aleatoriamente em um script bash, mas não parece que a string esteja sendo definida para a variável.
#Generate random password
PASSWORD=date+%s|sha256sum|base64|head -c 32;
echo $PASSWORD
Quando faço referência a $ PASSWORD mais tarde neste script, drush reclama que eu não forneci uma senha. Para testar, tentei alguns "ecos" para confirmar minha suspeita. Parece que há algo errado nas minhas declarações de atribuição?
Você precisa usar uma cotação de substituição de comandos , como
PASSWORD='date +%s|sha256sum|base64|head -c 32'
echo $PASSWORD
ou você pode fazer isso,
PASSWORD=$(date +%s|sha256sum|base64|head -c 32)
echo $PASSWORD
Você precisa usar uma substituição de comando :
#Generate random password
PASSWORD=$(date +%s|sha256sum|base64|head -c 32)
echo $PASSWORD
então deve funcionar.
Prefira o sinal "$", leia mais aqui: Usando backticks ou dólar em scripts de shell
Gerar uma senha apenas com base na hora atual é muito ruim.
Como você quer uma senha de 32 caracteres, eu faria algo assim:
PASSWORD=$(head -c 16 /dev/random | md5sum | cut -f 1 -d\ )
Tags command-line bash scripts