bash – 检查有效链接(URL)

前端之家收集整理的这篇文章主要介绍了bash – 检查有效链接(URL)前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在阅读这个 other question,它有一些非常好的正则表达式,但据我所知,由于BASH命令不支持这种复杂的rexeg,所以它们不能用BASH命令.
if echo "http://www.google.com/test/link.PHP" | grep -q '(https?|ftp|file)://[-A-Z0-9\+&@#/%?=~_|!:,.;]*[-A-Z0-9\+&@#/%=~_|]'; then 
    echo "Link valid"
else
    echo "Link not valid"
fi

但这不起作用,因为grep -q不起作用……

编辑,好吧,我刚才意识到grep有一个“扩展正则表达式”(-E)选项,似乎可以使它工作.但如果有人有更好/更快的方式,我仍然会喜欢这里.

以下适用于Bash> =版本3.2而不使用grep:
regex='(https?|ftp|file)://[-A-Za-z0-9\+&@#/%?=~_|!:,.;]*[-A-Za-z0-9\+&@#/%=~_|]'
string='http://www.google.com/test/link.PHP'
if [[ $string =~ $regex ]]
then 
    echo "Link valid"
else
    echo "Link not valid"
fi

你的正则表达式似乎不包括小写字母字符[a-z]所以我在这里添加它们.

猜你在找的Bash相关文章