Shell 编程学习笔记:条件测试
来源:互联网 发布:软件实施工资 编辑:程序博客网 时间:2024/05/20 05:28
原文见 《LINUX与UNIX SHELL编程指南 》的第17章 “条件测试” 。
两种条件测试:
• 对文件、字符串和数字使用 test 命令。
• 对数字和字符串使用 expr 命令。
expr 命令测试和执行数值输出。使用最后退出状态命令 $? 可测知 test 和 expr 的执行结果,二者均以0表示正确,1表示返回错误。
一、test 基本用法
1、测试时使用逻辑操作符
-a 逻辑与,操作符两边均为真,结果为真,否则为假。
-o 逻辑或,操作符两边一边为真,结果为真,否则为假。
! 逻辑否,条件为假,结果为真。
2、test 两种格式
一般有两种格式,即:
test condition
或
[ condition ]
使用方括号时,要注意在条件两边加上空格。
二、test 的各种测试
1、测试文件状态
- d 目录
- s 文件长度大于0、非空
- f 正规文件
- w 可写
- L 符号连接
- u 文件有s u i d位设置
- r 可读
- x 可执行
2、字符串测试
字符串测试有5种格式。
test "string"
test string_operator "string"
test "string" string_operator "string"
[ string_operator "string" ]
[ "string" string_operator "string" ]
这里, string_operator 可为:
= 两个字符串相等。
!= 两个字符串不等。
-z 空串。
-n 非空串。
3、测试数值
一般格式如下:
"number" numeric_operator "number"
或者
[ "number" numeric_operator "number" ]
numeric_operator 可为:
-eq 数值相等。
-ne 数值不相等。
-gt 第一个数大于第二个数。
-lt 第一个数小于第二个数。
-le 第一个数小于等于第二个数。
-ge 第一个数大于等于第二个数。
三、expr 用法
expr 命令一般用于整数值,但也可用于字符串。一般格式为:
expr argument operator argument
expr 也是一个手工命令行计数器。
1、计算
$ expr 10 + 10
20
$ expr 30 / 2
15
$ expr 30 /* 3
90
2、增量计数
$ LOOP=0
$ LOOP=`expr $LOOP + 1`
3、数值测试
可以用 expr 测试一个数。如果试图计算非整数,将返回错误。
这里需要将一个值赋予变量(不管其内容如何),进行数值运算,并将输出导入 dev/null ,
然后测试最后命令状态,如果为0,证明这是一个数,其他则表明为非数值。
数值:
$ VALUE=12
$ expr $VALUE + 10 > /dev/null 2>&1
$ echo $?
0
非数值:
$ VALUE=hello
$ expr $VALUE + 10 > /dev/null 2>&1
$ echo $?
2
expr 也可以返回其本身的退出状态,不幸的是返回值与系统最后退出命令刚好相反,成
功返回1,任何其他值为无效或错误。
- Shell 编程学习笔记:条件测试
- Shell学习笔记之条件测试
- shell学习笔记--条件测试
- SHELL 编程 -- 条件测试
- shell编程条件测试
- shell学习笔记(五)—— shell条件测试
- Shell编程--2.条件测试
- shell编程中的条件测试
- shell编程之条件测试
- Shell学习笔记——算数运算与条件测试
- Shell编程笔记--条件判断
- Shell编程笔记--条件判断
- Shell编程笔记--条件判断
- shell编程(条件判断与流程控制)学习笔记
- Linux之shell编程-条件测试
- Linux 与 Shell编程(2)-条件测试
- linux shell编程3 - 条件测试
- (6)Linux ----- Shell编程条件测试 ---- ④
- C#对话框全接触
- JDBC类图 操作流程
- 几个常用开源项目的地址荟萃
- VC其它-句柄大讨论
- 截取指定程序的网络封包fordelphi hook api
- Shell 编程学习笔记:条件测试
- C#处理文本文件
- serif vs sans serif
- 构造voronoi图分治算法
- load-on-startup标签
- Liferay 4.2.2 login problem
- MQSreies学习笔记。
- 我的野蛮女友(中国版) -- 摘自笑话天空
- websphere mq常用命令