Я пытаюсь использовать регулярное выражение для проверки пароля, соответствующего требованиям: как минимум один верхний регистр, один нижний регистр, один номер и специальный символ. Когда я запускаю этот код:
regexpassword='^(?=.*[A-Za-z])(?=.*[[:digit:]])(?=.*[@$!%*#?&])[A-Za-z0-9@$!%*#?&]{6,}$'
echo -n "Enter the password: "
read -s password
while [[ ! $password =~ $regexpassword ]];
do
somestuff...
Даже если пароль соответствует требованиям, он активирует l oop.
РЕДАКТИРОВАТЬ: поскольку это регулярное выражение PCRE, он не работает должным образом. Я использовал grep -P
и теперь работает хорошо!