网站首页 语言 会计 电脑 医学 资格证 职场 文艺体育 范文
当前位置:书香门第 > IT认证 > Linux认证

2016年Linux认证考试要点:shell程序控制结构语句

栏目: Linux认证 / 发布于: / 人气:3.32W

shell程序控制结构语句

2016年Linux认证考试要点:shell程序控制结构语句

脚本的控制结构语句有三种基本的类型:两路分支、多路分支以及一个或多个命令的循环执行。Linux的bash中的两路分支语句是if语句,多路分支语句是if-elif和case语句;代码的循环执行语句是for、while和until语句。

if语句

两路分支的'if语句 格式

if 判断条件

then 命令1

else 命令2

  Fi

判断条件包括命令语句和测试语句两种方式:

命令语句形式的判断条件

多路条件判断分支的if语句

格式为:

if 判断条件1

then 命令1

elif 判断条件2

then 命令2

……

else 命令n

Fi

其中elif是else if的缩写

测试语句

有两种格式,一种是使用关键字test,而另一种是使用方括号。格式如下:

test expression

[ expression ]

二者是等效的。同时要注意几点

用于三种形式的测试:文件测试、字符串测试和数值测试

文件测试

字符串测试

数值测试

用逻辑操作符进行组合的测试语句

用逻辑操作符进行组合的测试语句实例

[ ! "$s1" -le 0 ]

! test "$s1" -le 0

[ -f "$s1" –a –w "$s1" ]

test –f "$s1" -a –w "$s1"

[ "$s1" –gt 0 –o "$s2" –lt 10 ]

test "$s1" –gt 0 –o "$s2" –lt 10

[ ( "$a" –gt 0 –a "$a" –lt 10 ) –a "$a" –ne 5 ]

test ( "$a" –gt 0 –a "$a" –lt 10 ) –a "$a" –ne 5

case语句

对同一变量进行多次的测试,比elif语句更简单、简洁

case string1 in

str1)

commands-list1;;

str2)

commands-list2;;

...

strn)

commands-listn;;

esac

使用case语句时应注意以下几点

(1) 每个正则表达式后面可有一条或多条命令,其最后一条命令必须以两个分号(;;)结束。

(2) 正则表达式中可以使用通配符。

(3) 如果一个正则表达式是由多个模式组成,那么各模式之间应以竖线“|”隔开。表示各模式是“或”关系,即只要给定字符串与其中一个模式相配,就会执行其后的命令表。

使用case语句时应注意以下几点

(4) 各正则表达式是唯一的,不应重复出现。

(5) case语句以关键字case开头,以关键字esac结束。

(6) case的退出(返回)值是整个结构中最后执行的那个命令的退出值。若没有执行任何命令,则退出值为零。

for语句

格式:

for variable [in argument-list]

do

command-list

Done

其中的[in argument-list]部分为可选项,由于它的不同又可有三种形式。

[in argument-list]部分三种形式

[argument-list]为变量值表

变量variable依次取值表中各字符串

[argument-list]为文件的表达式

变量的值依次取当前目录(或指定目录)下与文件表达式相匹配的文件名,每取值一次,就进入循环体执行命令表,直到所有匹配的文件名取完为止。

[argument-list]为空

[argument-list]也可以用$*来代替,变量依次取位置参数的值,然后执行循环体中的命令表,直至所有位置参数取完为止。

while语句

格式为:

while expression

do

command-list

Done

作用:只要expression的值为真,则进入循环体,执行command-1ist中的命令,然后再做条件测试,直到测试条件为假时才终止while语句的行。

until语句

格式为:

until expression

do

command-list

done

作用: 只要expression的值为假,就执行command—lists的命令。

break和continue语句

break命令可以从循环体中退出来。格式为:

break [n]

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

continue [n]

算术表达式

五种基本的算术运算:+(加)、-(减)、*(乘)、/(除)和%(取模)。shell只提供整数的运算。格式如下:

expr n1运算符n2

例:

[expr 15 * 15

注意:在运算符的前后都留有空格,否则expr不对表达式进行计算,而直接输出它们。

自定义函数

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

Function( )

{

command-list

}

函数应先定义,后使用。调用函数时,直接利用函数名调用。