Проверьте пользовательский ввод буквенно-цифровой

Привет, я не программист, но я обнаружил, что создаю скрипт установки, который устанавливает MySQL, который работает нормально. Я хотел бы улучшить скрипт, попросив пользователя ввести текст, который будет использоваться для пароля.

Насколько я понимаю, разумным способом сделать это было бы использование команд 'echo' и 'read' для получения их ввода, а затем я хотел бы проверить, используются ли только стандартные буквенно-цифровые символы, и если не просить пользователя попробовать еще раз. Я не смог понять grep или piping, поэтому спрашиваю, не желает ли кто-нибудь написать его так, чтобы я мог просто поместить его в скрипт bash.

Надеясь на

0
задан 22 July 2014 в 05:54

1 ответ

Можно попробовать следующую функцию удара

#!/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.

2
ответ дан 22 July 2014 в 05:54

Другие вопросы по тегам:

Похожие вопросы: