【发布时间】:2021-12-22 05:38:31
【问题描述】:
我的任务是编写一个 bash 脚本来验证密码强度,其中一项要求是: 包括小写和大写字母。 Password 变量是输入,当然,验证密码的要求之一是密码必须包含大写字母、小写字母和数字。即使只有一个字母是大写字母而一个字母是小写字母就足够了,但为此我不需要用 for 循环遍历字符串并将每个字母与大写和小写进行比较吗?两者只用一个就足够了。
if [[ $PASSWORD == ${PASSWORD,,} ]] &&
[[ $PASSWORD == ${PASSWORD^^} ]]; then
valid=true
else
valid=false
fi
它总是会给我假的。
谁能帮帮我, 谢谢!
【问题讨论】:
-
你问
PASSWORD在转换为全小写时是否等于自己和在转换为全大写时...很难如果PASSWORD中有一个字母,如果PASSWORD是一堆数字和/或非字母字符,则可以得到“真”;你说这是一项任务,所以我猜......家庭作业?如果是这样,你最近学到了什么?与=~或通配符匹配有什么关系? -
把
&&改成||并切换真假。如果匹配其中一个,则密码仅包含大写字母,或仅包含小写字母,或根本不包含(例如1234),因此不包含大小写字母。
标签: linux bash passwords git-bash bash-completion