字符串变量转为整数变量

时间:2014-04-08 13:46:51

标签: bash

我有以下问题。

我将字符串放入变量$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,但也无济于事。

我做错了什么吗?如果是的话,你能指点我在哪里吗?

欢迎任何见解。

干杯。

3 个答案:

答案 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构造中尝试使用{ .. }