帮忙看一段检查密码的脚本问题出在哪

梦断酒醒 2010-11-17 09:58:25
function checkpwd {

if echo $1 | grep -Pq '^([A-Z]{1}&[a-z]{1}&[0-9]{1}&[!@#$%^&*().]{1}){6,20}$'; then
echo ok;
return 0;
else
echo err;
return 1;
fi
}

我的目的是想要密码中至少包含一位大写字母、小写字母、特殊字符,并且长度在6到20之间。但是运行结果不对,不知道是哪块写得不对,请大家指教。
...全文
86 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
梦断酒醒 2010-11-18
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 steptodream 的回复:]

据我所知 正则里没有与运算 你把条件分开判断不行吗?
[/Quote]

无所谓了,能判断就行。
steptodream 2010-11-18
  • 打赏
  • 举报
回复
据我所知 正则里没有与运算 你把条件分开判断不行吗?
「已注销」 2010-11-18
  • 打赏
  • 举报
回复
我可怜的正则
梦断酒醒 2010-11-18
  • 打赏
  • 举报
回复
急用,期待
louyong0571 2010-11-18
  • 打赏
  • 举报
回复
^([A-Z]{1}&[a-z]{1}&[0-9]{1}&[!@#$%^&*().]{1}){6,20}$
这种匹配不对吧,等主席来吧,呵呵
louyong0571 2010-11-18
  • 打赏
  • 举报
回复
echo $1|grep -P '([A-Z]{1,})'|grep -P '([a-z]{1,})'|grep -P '([0-9]{1,})'|grep -P '[!@#$%^&*().]{1}'|grep -P '[^.]{6,20}$'

这样行不,分开判断

23,125

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
  • 应用程序开发区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧