我已经为此工作了一段时间,访问了数十个网站并尝试了各种组合;但是,我无法让脚本按预期运行。即使它们在https://regex101.com/中工作,我仍然无法让它们在 bash 中工作。
我正在尝试编写一个 bash 脚本,该脚本将验证输入(“$password”)的长度至少为八个字符,并且至少包含一个数字和至少一个以下特殊字符:#?!@$ %^&* -
GNU bash,版本 5.1.16(1)-release-(x86_64-pc-linux-gnu)
任何帮助将不胜感激!
read -p "Please enter a password to test: " password
echo "You entered '$password'"
# I have tried all of the following (plus a few others) and cannot get it to work
#regex='^[a-zA-Z0-9#@$?]{8,}$'
#regex='^[a-zA-Z0-9@#$%&*+-=]{8,}$'
#regex='^(?=.*?[A-Z])(?=.*?[a-z])(?=.*?[0-9])(?=.*?[@#$%&*+-=]).{8,}$'
#regex='^(?=.*?[a-zA-Z0-9])(?=.*?[#?!@$ %^&*-]).{8,}$'
#regex='^(?=.*[A-Za-z])(?=.*[0-9])(?=.*[#?!@$ %^&*-]).{8,}$'
if [[ $password =~ $regex ]]; then
echo "This works"
else
echo "Nope"
fi
Run Code Online (Sandbox Code Playgroud)