如何在具有可变数据的循环中运行unix命令?

时间:2014-01-17 19:50:26

标签: shell unix

我想在循环中运行一个unix命令,为每次迭代替换一个变量,然后将输出存储到一个文件中。

我将使用curl -I抓取一系列URL的HTTP标头,然后我希望每个实例都输出到文件的新行。 我知道

我可以使用| cat存储输出,或者将其重定向到>的文件中,但是如何运行循环?

我有一个文件,每行有一个URL列表(或者我可以用逗号分隔它们。)

2 个答案:

答案 0 :(得分:2)

你可以写:

while IFS= read -r url ; do
    curl -I "$url"
done < urls-to-query.txt > retrieved-headers.txt

(使用内置的read命令从标准输入读取一行 - 在这种情况下从urls-to-query.txt重定向 - 并将其保存到变量 - 在这种情况下$url )。

答案 1 :(得分:0)

给出文件中的URL列表:

http://url1.com
http://url2.com

你可以运行

cat inputfile | xargs curl -I&gt;&gt; OUTPUTFILE

这将读取输入文件的每一行,并将每行的结果附加到outputfile