Bash检查http或https正则表达式

时间:2016-11-02 16:38:22

标签: bash

我试图检查网址是否以http | https开头,以jpg | png结尾。我搜索过,但答案对我不起作用。

我目前有这个:

if [[ $url = ^https?://.*jpg ]]
then
wget -O webcam.jpg $url
fi

但它未能wget。我做错了什么?

1 个答案:

答案 0 :(得分:1)

您必须使用=~运算符进行正则表达式匹配; =仅与模式匹配。等效模式为http?(s)://*jpg*。 (bash的最新版本始终使用[[ ... ]]内的扩展模式;旧版本可能需要使用shopt -s extglob明确启用它们。)

(我在模式中添加了尾随*,因为默认情况下模式会锚定到字符串的两端,而正则表达式明确需要^$。因为你没有在正则表达式的末尾有$,我也在最后打开了模式。)