检查用户输入的是字母数字

检查用户输入的是字母数字

嗨,我不是程序员,但我发现自己创建了一个安装脚本,它可以安装 mySQL,并且运行良好。我想通过要求用户输入将用作密码的文本来改进该脚本。

我的理解是,一个合理的方法是使用“echo”和“read”命令来获取他们的输入,然后我想检查是否只使用了标准的字母数字字符,如果不是,请用户重试。我无法理解 grep 或管道,所以我想问是否有人愿意以一种我可以将其放入 bash 脚本的方式编写它。

希望 ns

答案1

您可以尝试以下 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男厕所了解更多关于tr和的信息wc

相关内容