【问题标题】:Bash: How to find a specific char in a stringBash:如何在字符串中查找特定字符
【发布时间】: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


【解决方案1】:

除非“PASSWORD”不包含字母,否则您的测试总是错误的!

#! /bin/bash

...

if  [[ "$PASSWORD" =~ [a-z] ]] && [[ "$PASSWORD" =~ [A-Z] ]]; then
        valid=true
else
        valid=false
fi

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-08-06
    • 2023-03-24
    相关资源
    最近更新 更多