循环通过CURL结果

时间:2017-01-19 12:09:23

标签: bash curl

我有以下脚本:

#!/bin/bash
for line in $('curl -s https://scans.io/data/rapid7/sonar.http/20141209-http.gz | zcat | head -n 1000 | dap json + select vhost + lines');
do
    echo "$line\n"
done

我正在努力实现以下目标:

  1. 遍历来自scans.io curl
  2. 的动态增长结果列表
  3. 输出我建议传递给PHP以存储和处理
  4. 的行

    但是我得到syntax error near unexpected token $' \ r''`但我不是BASH专家,知道我需要调整什么。

1 个答案:

答案 0 :(得分:4)

使用Process-Substitution while-loop ,请参阅why using for-loop for command output parsing is bad。使用IFS标志取消设置read-r不允许反斜杠转义任何字符并按“原样”处理字符串。

#!/bin/bash

while IFS= read -r line
do
    printf '%s\n' "$line"
done < <(curl -s https://scans.io/data/rapid7/sonar.http/20141209-http.gz | zcat | head -n 1000 | dap json + select vhost + lines)