我有以下脚本:
#!/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)
为此,我正在努力实现以下目标:
但是我得到了syntax error near unexpected token$'\r''` 但我不是 BASH 专家,不知道我需要调整什么。
使用Process-Substitution和while-loop,看看为什么使用 for-loop 进行命令输出解析是不好的。取消设置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)
Run Code Online (Sandbox Code Playgroud)