for
variable
in
list
do
statement1
statement2
...
done
直接列出变量列表所有元素
方法
1
:直接列出元素方法
[root@localhost test5]
# vim list.sh
#!/bin/bash
for
IP
in
192
.168.1.101
192
.168.1.102
do
echo
$IP
done
[root@localhost test5]
# chmod +rx list.sh
[root@localhost test5]
# ./list.sh
192
.168.1.101
192
.168.1.102
方法
2
:使用大括号
[root@localhost test5]
# vim list2.sh
#!/bin/sh
for
IP
in
192
.168.1.10{1..5}
do
echo
$IP
done
[root@localhost test5]
# chmod +x list2.sh
[root@localhost test5]
# ./list2.sh
192
.168.1.101
192
.168.1.102
192
.168.1.103
192
.168.1.104
192
.168.1.105
方法
3
:使用
seq
[root@localhost test5]
# vim list3.sh
for
IP
in
$(seq -f "192.168.1.10%1g" 1 5)
do
echo
$IP
done
[root@localhost test5]
# chmod +x list3.sh
[root@localhost test5]
# ./list3.sh
192
.168.1.101
192
.168.1.102
192
.168.1.103
192
.168.1.104
192
.168.1.105
说明:
seq
的用法如下
[root@localhost test5]
# seq -f 'hello%03g' 1 2
hello001
hello002
Shell
允许用户指定
for
语句的步长。当用户需要另外指定步长时,其基本语法如下:
for
varibale
in
{start..end..step}
do
statement1
statement2
...
done
通过for循环,计算100
以内奇数的和
[root@localhost test5]
# cat 3.sh
#!/bin/bash
sum
=
0
;
for
i
in
{1..100..2}
do
let
"sum+=i"
done
echo
"the sum is
$sum
"
[root@localhost test5]
# ./3.sh
the sum is
2500