>我正在编写密码检查脚本,我希望能够检查密码是否包含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"