2017-02-17 21 views
1

,直到它與HTTP_CODE返回20​​0和299之間:如何檢查是否捲曲的HTTP_CODE是我想測試一個網站200和299之間

until [[ $(curl --silent -o /dev/null -w %{http_code} -u admin:admin http://mywww:8080/api/v1) = "2[0-9][0-9]" ]] ;do 
    printf '.' 
    sleep 5 
done 

但它只是不斷循環,即使捲曲的返回202例。 我試着比較正則表達式時替換=與當量,但隨後拋出一個錯誤

[[: 2[0-9][0-9]: syntax error: invalid arithmetic operator (error token is "[0-9][0-9]")

+0

不知道其餘的命令,但對於正則表達式匹配,使用'=〜2 [0-9] [0-9]' – Sundeep

+0

對於模式匹配,您必須*不*引用右側。 –

回答

4

試試這個:

until [[ $(curl -I --silent -o /dev/null -w %{http_code} -u admin:admin http://mywww:8080/api/v1) =~ 2[0-9][0-9] ]] ;do 
    printf '.' 
    sleep 5 
done 

-I:做一個頭,而不是獲取的。如果沒有被網絡服務器阻止,效率會更高。

=~ 2[0-9][0-9]:允許在if語句中使用正則表達式的Equal Tilde運算符。

備註:如果你不想使用相等的代字號,你應該在模式上丟掉qoutes。

+2

你並不需要正則表達式匹配,'='在模式匹配方面工作得很好,但是模式必須不加引號。 –

+0

感謝您的信息,更新了答案。 –

相關問題