1、退出状态

Linux系统中,每当命令执行完成后,系统都会返回一个退出状态。该退出状态用一整数值表示,用于判断命令运行正确与否。

若退出状态值为0,表示命令运行成功

若退出状态值不为0时,则表示命令运行失败

最后一次执行的命令的退出状态值被保存在内置变量“$?”中,所以可以通过echo语句进行测试命令是否运行成功

2、测试

测试命令可用于测试表达式的条件的真假。如果测试的条件为真,则返回一个 0值;如果测试的条件为假,将返回一个非 0整数值。

测试命令有两种结构:

一种命令是使用test命令进行测试,该命令的格式为:

test expression

其中条件expression是一个表达式,该表达式可由数字、字符串、文本和文件属性的比较,同时可加入各种算术、字符串、文本等运算符。

另一种命令格式:

[ expression ]

其中“[ ”是启动测试的命令,但要求在expression后要有一个“ ]”与其配对。使用该命令时要特别注意“[”后和“]”前的空格是必不可少的。

3、整数运算符

整数比较运算符是算术运算中很简单的一种,用于两个值的比较,测试其比较结果是否符合给定的条件。

例如:

a –eq b

如果满足a等于b,则测试的结果为真(测试条件用0表示)

如果a不等于b,则测试结果为假(测试条件用非0表示)

测试时有两种格式:

          (1test "num1" numeric_operator "num2“

          (2) [ "num1" numeric _operator "num2" ]

4文件操作符

Linux Shell提供了大量的文件操作符,这样可以完成测试文件的各种操作。比较常用的文件操作符如下表所示:

5逻辑运算符

逻辑运算符主要包括逻辑非、逻辑与、逻辑或运算符,具体描述如下表所示:

6简单if结构

简单的if结构是:

if expression

then

command

command

fi

在使用这种简单if结构时,要特别注意测试条件后如果没有“;”,则then语句要换行,否则会产生不必要的错误。如果ifthen可以处于同一行,则必须用“;”

7if/else结构

命令是双向选择语句,当用户执行脚本时如果不满足if后的表达式也会执行else后的命令,所以有很好的交互性。其结构为:

if expression1

then

command

command

else

command

command

fi

例:为成绩分类脚本


 

8if/elif/else结构

if/elif/else结构针对某一事件的多种情况进行处理。通常表现为“如果满足某种条件,则进行某种处理,否则接着判断另一个条件,直到找到满足的条件,然后执行相应的处理”。其语法格式为:

if expression1

then

command

command

elif expression2

then

command

command

elif expressionN

then

command

command

else

command

command

fi

例:这样看整齐多了,少了很多的fi

 


 

9case结构

if/elif/else结构一样,case结构同样可用于多分支选择语句,常用来根据表达式的值选择要执行的语句,该命令的一般格式为:

case Variable in

value1)

command;;

command;;

value2)

command

command;;

valueN)

command;;

command;;

*)

command

command;;

esac

例:当我们输入A-E时,输出相应的数字段


 

10、算术运算符

Linux Shell中,算术运算符包括:+(加运算)、-(减运算)、*(乘运算)、/(除运算)、%(取余运算)、**(幂运算),这些算术运算符的举例及其结果如下表所示:

11、自增自减运算符

自增自减操作符主要包括前置自增(++variable)、前置自减(--variable)、后置自增(variable++)和后置自减(variable--)。

前置操作首先改变变量的值(++用于给变量加1--用于给变量减1),然后在将改变的变量值交给表达式使用

后置变量则是在表达式使用后再改变变量的值

要特别注意自增自减操作符的操作元只能是变量,不能是常数或表达式,且该变量值必须为整数型,例如:++1、(num+2++都是不合法的

 

 

例: