Я использую следующую строку для создания случайно сгенерированного пароля в скрипте bash, но не похоже, что строка на самом деле устанавливается в переменную.
#Generate random password
PASSWORD=date+%s|sha256sum|base64|head -c 32;
echo $PASSWORD
Когда я позже ссылаюсь на $ PASSWORD в этом скрипте, drush жалуется, что я не указал пароль. Чтобы проверить, я попробовал несколько «эхо», чтобы подтвердить свое подозрение. Похоже, что-то не так в моих операторах присваивания?
Необходимо использовать замена команды цитата, как
PASSWORD=`date +%s|sha256sum|base64|head -c 32`
echo $PASSWORD
, или можно сделать это как,
PASSWORD=$(date +%s|sha256sum|base64|head -c 32)
echo $PASSWORD
Генерация пароля только на основе текущего времени довольно плоха.
, Поскольку Вы хотите пароль с 32 символами, я сделал бы что-то вроде этого:
PASSWORD=$(head -c 16 /dev/random | md5sum | cut -f 1 -d\ )
Необходимо использовать замена команды :
#Generate random password
PASSWORD=$(date +%s|sha256sum|base64|head -c 32)
echo $PASSWORD
тогда это должно работать.
Предпочитают знак "$", читают больше здесь: Используя обратные галочки или доллар в сценариях оболочки
как не наличие репутации для комментария я вынужден добавить не, отвечают на этом шаге
Как @Ángel я скептически относился к генерации пароля на основе времени, таким образом, я сделал некоторый тест
с командой, предложенной @Ángel: пароль имеет среднюю энтропию: 125 битов
с командой на основе времени, как предложено @souravc: средняя энтропия пароля: 175 битов
таким образом, дело не в этом плохо для генерации пароля на основе времени, в конце концов, ;)