欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  科技

linux学习(十)Shell中的控制语句

程序员文章站 2022-05-01 09:48:17
@ "TOC" 1. 条件测试语句 测试语句十Shell的特有功能,Shell提供了一组测试运算符,通过这些运算符,Shell程序能够判断某个或者某几个条件是否成立。 在Shell中用户可以使用测试语句来测试指定条件表达式的条件的真和假。当指定条件为真,条件测试的返回值为0;反之,条件测试的返回值为 ......

目录

@(shell中的控制语句)

1. 条件测试语句

测试语句十shell的特有功能,shell提供了一组测试运算符,通过这些运算符,shell程序能够判断某个或者某几个条件是否成立。
在shell中用户可以使用测试语句来测试指定条件表达式的条件的真和假。当指定条件为真,条件测试的返回值为0;反之,条件测试的返回值为非0值。条件测试的语法有两种,分别是test命令和[]命令

1.1 test语句

test expression

其中,参数expression表示需要进行测试的语句,整个test语句为真,test返回0,若为假,则返回非0

==笔者强烈推荐test语句,[]语句十分糟糕,要求十分严格,会出现各式各样的错误,不利于初学者学习==

1.2[]语句

[expression]

其中,参数expression的语句与test命令中语法完全相同。条件表达式和左右方括号之间都必须有一个空格

1.3文件测试

文件测试指的是根据给出的路径,判断当前路径下的文件属性及类型。

test op file
[ op file ]
环境变量 说明
-a 若文件存在,则条件测试返回结果为0
-b 若文件存在,且为块文件,则条件测试返回结果为0
-c 若文件存在,且为字符文件,则条件测试返回结果为0
-d 若文件存在,且为目录文件,则条件测试返回结果为0
-e 若文件,则条件测试返回为0
-f 若文件存在,且为常规文件,则条件测试返回结果为0
-r 若文件存在且可读,则条件测试返回结果为0
-w 若文件存在且可写,则条件测试返回结果为0
-x 若文件存在且可执行,则条件测试返回结果为0
-p 若文件存在且是fifo文件,则条件测试返回结果为0
-s 若文件存在且不是空文件,则条件测试返回结果为0

1.4字符串测试

test 操作符 
操作符 说明
str 判断指定字符串是否为空
str1==str2 若字符串相等就为0
-n str 判断字符串是否为非空串,若为空串则测试结果为0
-z str 若为空串,则测试结果为0

1.5数值测试

与字符串类似,数值测试也有两种形式的语法

test number1 op number2

或者

[ number1 op number2 ]
操作符 说明
n1 -eq n2 比较n1是否等于n2,如果等于,则测试结果为0
n1 -ne n2 若n1不等于n2,则测试结果为0
n1 -lt n2 比较n1是否小于n2,n1如果小于n2,测试结果为0
n1 -le n2 比较n1是否小于等于n2,n1如果小于等于n2,测试结果为0
n1 -gt n2 比较n1是否大于n2,n1如果大于n2,测试结果为0
n1 -ge n2 比较n1是否大于等于n2,n1如果大于等于n2,测试结果为0

1.5逻辑操作符

逻辑操作符相当于c语言中的&&、||、!
|操作符|说明|
|:---:|:---:|
|!exp|逻辑非,条件表达式为假,则该操作符的运算结果为真
|exp1 -a exp2|逻辑与,条件exp1和exp2的值都为真时,整个表达式为真
|exp1 -o exp2|逻辑或,条件表达式exp1和exp2的值有一个为真,整个表达式为真
|(exp)|圆括号,将表达式分组,优先得到结果