shell编程笔记一 条件测试

一  条件测试
对文件、字符串和数字使用test命令
对数字和字符串使用expr命令
expr命令测试和执行数值输出

1 测试文件状态
test一般有两种格式,即:
test condition
[ conditon ]
-d 目录
-f 正规文件
-L 符号连接
-r 可读
-s 文件长度大于0,非空
-w 可写
-u 文件有suid位设置
-x 可执行
使用两种方法测试scores.txt是否可写并用最后退出状态测试是否成功
$ [-w scores.txt]
$ echo $?
0

$ test -w scores.txt
$ echo $?
0
两种状态均返回0,可知文件scores.txt可写

2 测试时使用逻辑操作符
-a 逻辑与
-o 逻辑或
! 逻辑否

测试两个文件是否均可读
[-w file1.txt -a -w file2.txt]
echo $?

3 字符串测试
字符串测试有5种格式
test "string"
test string_operator "string"
test "string" string_operator "string"
[string_operator string]
[string string_operator string]
这里,string_operator可为:
=
!=
-z 空串
-n 非空串
测试环境变量EDITOR是否为空
$[-z $EDITOR]
$echo $?
1
非空,取值是否为vi?
$[$EDITOR="vi"]
$echo $?
0

4 测试数值
"number" numeric_operator "number"
numeric_operator可为:
-eq 数值相等
-ne 数值不等
-gt 第一个数大于第二个数
-lt 第一个数小于第二个数
-le 第一个数大于等于第二个数
-ge 第一个数大于等于第二个数

$[“990” -le "995" -a "123" -gt "33"]
$ echo $?
0

5 expr用法
expr命令一般用于整数值,但也可用于字符串
expr argument operator argument
expr也是一个手工命令行计数器
$ expr 10+10
20

$ expr 30/3
10

使用乘号时必须用\
$ expr 30\*3
90

增量计数
expr在循环中用于增量计算。首先,循环初始化为 0,然后循环值加 1,反引号的用法意即替代命令。最基本的一种是从( expr)命令接受输出并将之放入循环变量。

$ LOOP=0
$ LOOP='expr $LOOP+1'

数值测试

你可能感兴趣的:(shell编程)