Chinaunix首页 | 论坛 | 博客
  • 博客访问: 712181
  • 博文数量: 165
  • 博客积分: 8218
  • 博客等级: 中将
  • 技术积分: 1749
  • 用 户 组: 普通用户
  • 注册时间: 2008-09-07 19:48
文章分类

全部博文(165)

文章存档

2014年(4)

2011年(3)

2010年(6)

2009年(43)

2008年(109)

分类: LINUX

2008-12-17 16:09:37

6.for语句

for语句是最常用的建立循环结构的语句。其使用格式主要有三种,取决于循环变量的取值方式。 格式一:

for  变量  in  值表
do
命令表
done

例如:

for  day  in  Monday  Wednesday  Friday  Sunday
do
echo $day
done

其执行过程是,变量day依次取值表中各字符串,即第一次将“Monday”赋给day,然 后进入循环体,执行其中的命令,显示出Monday。第二次将“Wednesday”赋给day,然后执行循环体中命令,显示出Wednesday。依次 处理,当day把值表中各字符串都取过一次之后,下面day的值就变为空串,从而结束for循环。因此,值表中字符串的个数就决定了for循环执行的次 数。在格式上,值表中各字符串之间以空格隔开。

格式二:

for  变量  in  文件正则表达式
do
命令表
done

其执行过程是,变量的值依次取当前目录下(或给定目录下)与正则表达式相匹配的文件名,每取值一次,就进入循环体执行命令表,直至所有匹配的文件名取完为止,退出for循环。

格式三:

for  i  in  $*   或者     for  i   
do do
命令表 命令表
done done

这两种形式是等价的。其执行过程是,变量i 依次取位置参数的值,然后执行循环体中的命令表,直至所有位置参数取完为止。

7.break命令和continue命令

break命令可以使我们从循环体中退出来。其语法格式是:

break  [ n ]

其中,n表示要跳出几层循环。默认值是1,表示只跳出一层循环。

continue命令跳过循环体中在它之后的语句,回到本层循环的开头,进行下一次循环。其语法格式是:

continue  [ n ]

其中,n表示从包含continue语句的最内层循环体向外跳到第几层循环。默认值为1。循环层数是由内向外编号。


函数

在Shell脚本中可以定义并使用函数。其定义格式为:

[function]函数名( )
{
命令表
}

其中,关键字function可以缺省。

函数应先定义,后使用。调用函数时,直接利用函数名,如showfile,不必带圆 括号,就像一般命令那样使用。Shell脚本与函数间的参数传递可利用位置参数和变量直接传递。变量的值可以由Shell脚本传递给被调用的函数,而函数 中所用的位置参数$1、$2,等对应于函数调用语句中的实参,这一点是与普通命令不同的。下面是使用函数的示例:

#func  is  a  function  name
# it echos the values of variables and arguments
func( )
{
echo "Let's begin now. "
echo $a $b $c
echo $1 $2 $3
echo "The end. "
}
a=" Working directory "
b="is"
c=`pwd`
func Welcome You Byby
echo "Today is ` date ` "

Shell中的函数把若干命令集合在一起,通过一个函数名加以调用。如果需要,还可被多次调用。执行函数并不创建新的进程,是通过Shell进程执行。

通常,函数中的最后一个命令执行之后,就退出被调函数。也可利用return命令立即退出函数,其语法格式是:

return  [ n ]

其中,n值是退出函数时的退出值(退出状态),即$?的值。当n值缺省时,则退出值是最后一个命令执行后的退回值。

阅读(914) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~