【发布时间】:2017-04-05 21:39:13
【问题描述】:
我有一个包含一列 url 的文件,我使用以下 bash 脚本读取了该文件:
while read line
do
result=`curl $line -I | grep HTTP/1.1` # save the curl result
printf '%s,%s\n' $line $result >> output.csv
done < $input_file
当我运行脚本时,出现错误:curl: (3) Illegal characters found in URL。
我的网址示例如下:http://stackoverflow.com/
【问题讨论】:
-
result=$(curl $line -I | grep HTTP/1.1)呢? -
@fvu 不。当然,您可以在反引号中使用管道,并且您链接的 Q 本质上是关于将带有管道的命令存储在变量中。不过,用
$(...)替换反引号会更现代。 -
@TonyGW 我感觉您遇到了引用问题。尝试在所有内容周围加上正确的引号:
while IFS='' read -r line、result=$(curl "$line" -I | grep "HTTP/1.1")、printf "%q, %q\n" "$line" "$result" >> output.csv,并告诉我们问题是否仍然存在。