全部博文(471)
分类: LINUX
2013-02-22 19:02:42
1.for结构
for name [in list]
do
statements using $name
done
1.list应该是一系列由空格分隔的字符序列(单词),省略in list 时默认为
$@(命令行的参数列表)
2.for循环执行的次数取决于列表list中单词的个数
3.在for循环体中一般要出现变量$name,但也可以不出现。
语法结构:
1.for … in 语句
for 变量 in seq字符串
do
action
done
说明:seq字符串 只要用空格字符分割,每次for…in 读取时候,就会按顺序将读到值,给前面的变量。
实例(testfor.sh):
#!/bin/sh
for i in $(seq 10); do
echo $i;
done;
seq 10 产生 1 2 3 。。。。10空格分隔字符串。
2.for((赋值;条件;运算语句))
for((赋值;条件;运算语句))
do
action
done;
实例(testfor2.sh):
#!/bin/sh
for((i=1;i<=10;i++));do
echo $i;
done;
#! /bin/sh
for FRUIT in apple banana pear; do echo "I like $FRUIT" done
,要将当前目录下的chap0、chap1、chap2等文件名改为chap0~、chap1~、chap2~等(按惯例,末尾有~字符的文件名表示临时文件),这个命令可以这样写:
for FILENAME in `ls chap?`; do mv $FILENAME $FILENAME~; done
2.循环结构:while循环
while [ condition ]
do
statments
done
条件不成立退出循环
while语句结构
while 条件语句
do
action
done;
实例1:
#!/bin/sh
i=10;
while [[ $i -gt 5 ]];do
echo $i;
((i--));
done;运行结果:========================
sh testwhile1.sh
10
9
8
7
6实例2:(循环读取文件内容:)
#!/bin/sh
while read line;do
echo $line;
done < /etc/hosts;
运行结果:===================
sh testwhile2.sh
# Do not remove the following line, or various programs
# that require network functionality will fail.
127.0.0.1 centos5 localhost.localdomain localhost
3.循环结构:until
until [ condition ]
do
statments
done
condition 条件成立退出循环
语法结构:
until 条件
do
action
done
意思是:直到满足条件,就退出。否则执行action.
实例(testuntil.sh):
#!/bin/sh
a=10;
until [[ $a -lt 0 ]];do
echo $a;
((a—));
done;
结果:
sh testuntil.sh
10
9
8
7
6
5
4
3
2
1
0