2016-11-02 50 views
2

我試圖檢查一個URL是否以http | https開頭並以jpg | png結尾。我已經搜索過,但答案不適合我。Bash檢查http或https正則表達式

我有這個目前:

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

但其未能wget。我究竟做錯了什麼?

回答

1

您必須使用=~運算符進行正則表達式匹配; =只有模式匹配。等效模式將是http?(s)://*jpg*。 (中bash最新版本總是使用擴展模式中[[ ... ]];舊版本可能要求它們與shopt -s extglob明確啓用。)

(我加後*的模式,因爲模式被固定到系統默認的串的兩端,而正則表達式需要^$明確。既然你沒有$在你的正則表達式的結束,我做了露底格局爲好。)

+0

不會增加或者'*'匹配URL像'http:// jpg.com/not_an_image.html'?我認爲OP想要精確匹配,而不是子字符串匹配。 – dimo414