循环 CURL 结果

Ant*_*ony 3 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
Run Code Online (Sandbox Code Playgroud)

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

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

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

Ini*_*ian 5

使用Process-Substitutionwhile-loop,看看为什么使用 for-loop 进行命令输出解析是不好的。取消设置IFSread使用-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)
Run Code Online (Sandbox Code Playgroud)