循环 bash 脚本,直到 cURL 响应不等于字符串
Posted
技术标签:
【中文标题】循环 bash 脚本,直到 cURL 响应不等于字符串【英文标题】:Loop bash script until cURL response doesn't equal string 【发布时间】:2016-05-09 01:53:38 【问题描述】:我正在尝试循环一个 bash 脚本(下面的 cURL),直到我的远程 php 脚本不等于failure
。我尝试了以下方法,当$fileName
存在时它可以工作。但是当它返回failure
时不会循环。
我的 PHP:
<?php
$videoFile = $_GET["name"] . ".mp4";
if (file_exists($videoFile))
echo "success";
else
echo "failure";
?>
Bash 命令:
until $(curl --output /dev/null --silent --head --fail "my-remote-php-script.php"); do
printf '.'
sleep 1
done
【问题讨论】:
【参考方案1】:这应该可行:
while [ "$(curl -s 'http://your-url.php')" == "failure" ]; do
echo -n '.'
sleep 1
done
$()
将 curl 放置在子 shell 中。将来自您的 php 脚本的结果字符串与 failure
进行比较。
【讨论】:
【参考方案2】:试试这个:
url="http://server.tld/foo.php"
until curl -sf "$url"; do echo -n "."; sleep 1; done
【讨论】:
以上是关于循环 bash 脚本,直到 cURL 响应不等于字符串的主要内容,如果未能解决你的问题,请参考以下文章
Bash CURL GET 请求输出到单个 JSON 文件,包括服务器响应和 CURL 信息