如何计算字符串 bash shell 中是否有 3 个或更多字符的字符串



>我正在编写密码检查脚本,我希望能够检查密码是否包含3个或更多相同字符(aaa,babbb,asj111(的字符串,所有这些都是"错误密码"。 我试过了grep -E '(.)1{2,}' $password但是我希望在 if 语句中执行此操作,然后如果我找到超过 3 个字符,则执行某些操作。 感谢所有帮助!

使用grep的返回码:

if grep -q '(.)11' <<< "$password"; then
echo "Bad password!"
# Do something, like exit 1
fi

-q选择是保持grep安静。我没有使用-E(扩展(选项,如果需要,请使用它。

把你的模式放在一个变量中。它匹配任何字符,然后再次匹配同一字符两次(总共三次(。

pattern='(.)1{2}' 

然后使用 bash 正则表达式比较运算符进行测试=~

[[ $password =~ $pattern ]] && echo "bad password"

最新更新