我有以下脚本:
#!/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
我正在努力实现以下目标:
但是我得到syntax error near unexpected token
$' \ r''`但我不是BASH专家,知道我需要调整什么。
答案 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)