Некоторые проблемы с вашим кодом:
[[
иpassword
password
будет переменной и поэтому для расширения $password
. #!/bin/sh
, поэтому расширенный тест bash([[
)может быть недоступен Я думаю, что функция лучше всего подходит для проверки того, соответствует ли пароль вашим требованиям, и придумала следующее:
#!/bin/sh
chk_pass () {
local pass=$1
# Check if password contains uppercase
printf '%s' "$pass" | grep -q '[A-Z]' || return 1
# Check if password contains lowercase
printf '%s' "$pass" | grep -q '[a-z]' || return 1
# Check if password contains numbers
printf '%s' "$pass" | grep -q '[0-9]' || return 1
# Check if password contains special characters
printf '%s' "$pass" | grep -q '[^a-zA-Z0-9 \t]' || return 1
return 0
}
printf '%s\n' 'Please enter a password containing at least one number, one uppercase letter, one lowercase letter, and one special character: '
read -rs
if chk_pass "$REPLY"; then
printf '%s\n' 'Success'
else
printf '%s\n' 'Error: Password must contain one number, one uppercase letter, one lowercase letter, and one special character!' >&2
fi
Примечания:
Последнее grep
в функции фактически только проверяет, содержит ли пароль символы , отличные от буквенно-цифровых или пробелов.
Опция -r
для чтения сохранит символы обратной косой черты
. Опция -s
для чтения скроет пользовательский ввод (, полезный для ввода пароля)
Я заработал, используя manjaro -architect, выбрав ядро 5.9, затем позже chroot для установки, переключиться на тестовую ветку
sudo pacman-mirrors --api --set-branch testing
sudo pacman-mirrors --fasttrack 5 && sudo pacman -Syy
установка пакетов nvidia -460 из тестовой ветки
sudo pacman -S linux59-nvidia-460.32.03-1
, затем установка video-nvidia
драйвера с помощью mhwd
(, который устанавливает правильную версию460.32.03
)
sudo mhwd -i pci video-nvidia
Надеюсь, это поможет!