Технически это должно выдавать ошибку типа [[hello123 : command not found
.
Проблема в том, что [[$password
не раскрывается так, как вы думаете. Bash сначала разрешит переменную $password
в соответствии с тем, что вы ввели (т.е. hello123
). Это приведет к строке [[hello123
, которую bash попытается вызвать (и потерпит неудачу, поскольку с таким именем ничего нет).
Просто добавьте пробел (
) после [[
, и bash распознает [[
в качестве команды для запуска (хотя это встроенная команда).
if [[ "$password" == [a-z]*[0-9][a-z]* ]]
then
...