解题思路:使用shell中egrep命令进行过滤,条件都满足时,命令的执行结果为0;条件有一个不满足时,命令的执行结果为非零。
密码验证条件:
1.长度不小于8位;
2.包含大小写;
3.包括特殊字符
答案:
#!/bin/bash
read -s -p"请输入您的密码:" password
echo $password|egrep [a-z]|egrep [A-Z]|egrep [0-9]|egrep [^0-Z] &>/dev/null
if (( $?==0 ))
then
len=${#password}
if (( len>8 ))
then
echo -e "\nthe password is valid!"
else
echo -e "\nthe password is not valid!"
fi
else
echo -e "\nthe password is not valid!"
fi
知识扩展1:grep是Linux中的过滤命令,egrep代表grep支持扩展正则
[0-9]:包含0-9的数字就查找出来
[a-z]:包含小写字母的就查找出来
[A-Z]:包含大写字母的就查找出来
[0-z]:包含数字和小写字母的就查找出来
[0-Z]:包含数字和大小写字母的就查找出来
[a-Z]:包含大小写字母的就查找出来
知识扩展2:重定向
1>:正确的重定向
2>:错误的重定向
&>:正确和错误的都重定向