Linux bash中的循环变量和整数比较
因为要用wget下载一系列文件,需要用循环的方式取文件名,要命的是Bash学的不好,不知道怎么用循环变量表示文件名称,经过漫长努力,终于发现在《高级Bash脚本编程指南》的中有现成的例子,一直没注意看。真是踏破铁鞋无觅处,得来全不费工夫。
例子 10-12. 一个C风格的for循环
1 #!/bin/bash
2 # 两种循环到10的方法.
3
4 echo
5
6 # 标准语法.
7 for a in 1 2 3 4 5 6 7 8 9 10
8 do
9 echo -n "$a "
10 done
11
12 echo; echo
13
14 # +==========================================+
15
16 # 现在, 让我们用C风格的语法做同样的事.
17
18 LIMIT=10
19
20 for ((a=1; a <= LIMIT ; a++)) # 双圆括号, 并且"LIMIT"变量前边没有 "$".
21 do
22 echo -n "$a "
23 done # 这是一个借用'ksh93'的结构.
24
25 echo; echo
26
27 # +=========================================================================+
28
29 # 让我们使用C的逗号操作符,来同时增加两个变量的值.
30
31 for ((a=1, b=1; a <= LIMIT ; a++, b++)) # 逗号将同时进行2条操作.
32 do
33 echo -n "$a-$b "
34 done
35
36 echo; echo
37
38 exit 0
另外整数的比较可以用 (("$a" < "$b")) 代替 [ "$a" -lt "$b" ] 的方式,可读性更好些。
我的Bash
#! /bin/bash
NUMBERS=30
for ((number=1;number<=NUMBERS;number++))
do
if (($number < 10))
then
wget http://.../Ubuntu/Ubuntu0${number}.jpg
else
wget http://.../Ubuntu/Ubuntu${number}.jpg
fi
done
不过很遗憾的是,上面的脚本对那个网站不起作用,可能和cookie等有关,必要时再看看wget的用法。
- 最新评论