我正在尝试编写一个bash脚本,它可以让我使用curl下载多个网页。对于每个网页,我希望能够通过卷页和引用链接。我希望能够一次提供多个网页。是否有可能使用bash访问for循环中的多个数组
换句话说,我希望能够遍历我提供脚本的网页,并为每个页面传递关联的网页和引用链接来卷曲。
我以为我会用一个数组来存储单个变量中的网页和引用链接,因为我认为在运行curl时可以提取数组中的单个元素。
我的问题是,我无法弄清楚如何让多个数组在for循环中正常工作。这是我想要做的一个想法。此代码不起作用,因为“$ i”(在for循环中)不会成为数组。
#every array has the information for a separate webpage
array=("webpage" "referer")
array2=("another webpage" "another referer")
for i in "${array[@]}" "${array2[@]}" #line up multiple web pages
do
#use curl to download the page, giving the referer ("-e")
curl -O -e "${i[1]}" "${i[0]}"
done
如果我只用一个阵列的工作,我可以很容易地做到这一点是这样的:
array=("webpage" "referer")
REFERER="${array[1]}"
PAGE="${array[0]}"
#use curl to download the page, giving the referer ("-e")
curl -O -e "$REFERER" "$LINK"
这一次,我有我要处理多个网页一次,我可以”弄清楚如何正确地做到这一点。
如果有另一种方式来处理多个网页,而不必使用数组和for循环,请让我知道。
Bash可以对空格进行分割,而无需在循环内的每次迭代中对外部程序进行两次调用。 – 2010-07-20 13:08:04
对不起,让你失望,但'expr'是一个bash内建的。 – 2010-07-20 14:20:57
'哪个expr'返回/ usr/bin/expr – Menachem 2010-07-20 15:30:23