Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Regex 如何检查旋度';s的http_代码介于200和299之间_Regex_Linux_Bash_Curl - Fatal编程技术网

Regex 如何检查旋度';s的http_代码介于200和299之间

Regex 如何检查旋度';s的http_代码介于200和299之间,regex,linux,bash,curl,Regex,Linux,Bash,Curl,我想测试一个网站,直到它返回的http_代码介于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 但它只是继续循环,即使curl返回202。 在与regex进行比较时,我尝试用-eq替换=但它抛出了一个错误 [:2[0-9

我想测试一个网站,直到它返回的http_代码介于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
但它只是继续循环,即使curl返回202。 在与regex进行比较时,我尝试用-eq替换=但它抛出了一个错误

[:2[0-9][0-9]:语法错误:算术运算符无效(错误标记为“[0-9][0-9]”)

试试这个:

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
:执行head而不是get。如果不被Web服务器阻止,效率会更高

=~2[0-9][0-9]
:允许在if语句中使用正则表达式的相等波浪线运算符

旁注:如果您不想使用等分瓷砖,则应丢失图案上的qoutes。

尝试以下方法:

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
:执行head而不是get。如果不被Web服务器阻止,效率会更高

=~2[0-9][0-9]
:允许在if语句中使用正则表达式的相等波浪线运算符


旁注:如果您不想使用等号,您应该丢失模式上的qoutes。

不确定其余命令,但对于正则表达式匹配,请使用
=~2[0-9][0-9]
进行模式匹配,您不能引用右侧。对于其余命令,不确定,但对于正则表达式匹配,请使用
=~2[0-9][0-9]
对于模式匹配,您不能引用右侧。您实际上不需要正则表达式匹配,
=
可以很好地进行模式匹配,但必须取消对模式的引用。感谢您提供的信息,更新了答案。您不需要正则表达式匹配,
=
可以很好地进行模式匹配,但模式必须是正确的未引用。谢谢你的信息,更新了答案。