我试图检查网址是否以http | https开头,以jpg | png结尾。我搜索过,但答案对我不起作用。
我目前有这个:
if [[ $url = ^https?://.*jpg ]]
then
wget -O webcam.jpg $url
fi
但它未能wget
。我做错了什么?
答案 0 :(得分:1)
您必须使用=~
运算符进行正则表达式匹配; =
仅与模式匹配。等效模式为http?(s)://*jpg*
。 (bash
的最新版本始终使用[[ ... ]]
内的扩展模式;旧版本可能需要使用shopt -s extglob
明确启用它们。)
(我在模式中添加了尾随*
,因为默认情况下模式会锚定到字符串的两端,而正则表达式明确需要^
和$
。因为你没有在正则表达式的末尾有$
,我也在最后打开了模式。)