我有以下问题。
我将字符串放入变量$var1
。该字符串将是数字类型,例如118
。
我执行了以下命令行来填充我的变量:
var1=$(cat test.html | grep "<quote")
但是,当我将变量放入下面的循环中时......
for page in {1..$var1} ; do
wget "http://www.hellomovie.co.uk/movies/decade-2000/year-2001/?page=$page";
done
wget让我这样......
Saved in : «index.html@page={1..118}»
[ <=> ] 135 284 --.-K/s in 0,1s 2014-04-08 15:36:58 (1,07 MB/ - «index.html@page=**{1..118}**.2» saved[135284]`
如您所见,该变量未被考虑在内。
我尝试了以下操作以确保将$var1
视为数字变量$(($var1))
,但无济于事。
我试过了expr
,但也无济于事。
我做错了什么吗?如果是的话,你能指点我在哪里吗?
欢迎任何见解。
干杯。
答案 0 :(得分:3)
你不能使用{1..$N}
中的变量。
使用BASH算术结构,即((...))
:
for ((page=1; page<=var1; page++)); do
答案 1 :(得分:1)
你可以使用它,
for page in `seq $var1` ; do
...
...
done
答案 2 :(得分:1)
试试这个:
for(( page=1 ; page <= $var1 ; page++)); do
wget "http://www.hellomovie.co.uk/movies/decade-2000/year-2001/?page=$page";
done
您的问题不在于分配变量,而是在$var1
构造中尝试使用{ .. }
。