我有以下脚本:
#!/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专家,不知道我需要调整什么。
发布于 2017-01-19 12:12:33
使用过程替代,使用while-循环,请参见为什么使用for -循环进行命令输出解析是错误的?。取消设置IFS和read的-r标志不允许反斜杠转义任何字符,并将字符串视为"as-is“。
#!/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)https://stackoverflow.com/questions/41741463
复制相似问题