【问题标题】:Loop bash script until cURL response doesn't equal string循环 bash 脚本,直到 cURL 响应不等于字符串
【发布时间】: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

【问题讨论】:

    标签: php bash file-exists


    【解决方案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
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-07-11
        • 1970-01-01
        • 2017-10-05
        • 1970-01-01
        • 2014-03-25
        相关资源
        最近更新 更多