Привет, я не программист, но я обнаружил, что создаю скрипт установки, который устанавливает MySQL, который работает нормально. Я хотел бы улучшить скрипт, попросив пользователя ввести текст, который будет использоваться для пароля.
Насколько я понимаю, разумным способом сделать это было бы использование команд 'echo' и 'read' для получения их ввода, а затем я хотел бы проверить, используются ли только стандартные буквенно-цифровые символы, и если не просить пользователя попробовать еще раз. Я не смог понять grep или piping, поэтому спрашиваю, не желает ли кто-нибудь написать его так, чтобы я мог просто поместить его в скрипт bash.
Надеясь на
Можно попробовать следующую функцию удара
#!/bin/bash
function get_password(){
echo "Enter wour password: "
read password
if [[ -n "$password" ]]; then
a=$(echo $password | tr -d "\n" | wc -c)
b=$(echo $password | tr -cd "[:alnum:]" | wc -c)
if [[ $a != $b ]]; then
echo "Plz enter alphanumeric words"
echo "Retry or Press Ctrl + C to exit"
get_password
else
echo "it is fine"
exit 0
fi
else
echo "password can't be left empty"
echo "Retry or Press Ctrl + C to exit"
get_password
fi
}
get_password
, Как она работает:
./script.sh
Enter wour password:
12%
Plz enter alphanumeric words
Retry or Press Ctrl + C to exit
Enter wour password:
^C
./script.sh
Enter wour password:
123sddf
it is fine
См. man tr
и туалет человека для знания больше [приблизительно 113] и wc
.