小编bal*_*tud的帖子

使用Bash中的正则表达式检查电子邮件地址的正确性

我正在尝试制作一个Bash脚本来检查电子邮件地址是否正确.

我有这个正则表达式:

[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?
Run Code Online (Sandbox Code Playgroud)

资料来源:http://www.regular-expressions.info/email.html

这是我的bash脚本:

regex=[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?

i="test@terra.es"
if [[ $i=~$regex ]] ; then
    echo "OK"
else
    echo "not OK"
fi
Run Code Online (Sandbox Code Playgroud)

脚本失败并给我输出:

10:语法错误:反引号替换中的EOF

任何线索?

regex bash shell email-validation

6
推荐指数
3
解决办法
3万
查看次数

标签 统计

bash ×1

email-validation ×1

regex ×1

shell ×1