如果条件不起作用,shell脚本中的正则表达式

时间:2018-10-26 06:11:08

标签: bash shell

if条件中的正则表达式,用于密码检查。条件是:

  1. 密码长度必须大于14
  2. 应至少包含1个大写字母
  3. 应至少包含1个小写字母
  4. 它至少应包含1个特殊字符

所有这些代码都应该在shell脚本中。

请帮助我。代码始终打印错误。

password="Testing@1234Test"
correct_password="^(?=.*[A-Z])(?=.*[0-9])(?=.*[a-z])(?=.*[^A-Za-z0-9]).{14,}$"
if [[ $password =~ $correct_password ]]; then echo "correct" ; exit
else echo "wrong"
fi

1 个答案:

答案 0 :(得分:1)

尝试一下:

[[ ${#a} -ge 14 && "$a" == *[A-Z]* && "$a" == *[a-z]* && "$a" == *[0-9]* && "$a" == *[@#$*%^\!]* ]]

您需要根据需要在最后一个条件中添加特殊字符,并注意某些特殊字符需要转义。