我正在嘗試編寫一個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