![检查用户输入的是字母数字](https://linux22.com/image/858559/%E6%A3%80%E6%9F%A5%E7%94%A8%E6%88%B7%E8%BE%93%E5%85%A5%E7%9A%84%E6%98%AF%E5%AD%97%E6%AF%8D%E6%95%B0%E5%AD%97.png)
嗨,我不是程序员,但我发现自己创建了一个安装脚本,它可以安装 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