Shell脚本的条件测试
来源:互联网 发布:js中的target属性 编辑:程序博客网 时间:2024/06/05 19:32
1、判断命令:test/[命令
test和[可以测试一个条件是否成立,。如果测试结果为真,则该命令的输出状态为0;如果测试结果为假,则该命令的输出状态为1(这与C语言的逻辑关系正好相反)。命令test和[的参数形式是相同的,参数之间要用空格隔开,只不过test命令不需要]参数。
【例】比较两个数
2、命令测试
1)[ -d DIR ]:如果DIR存在并且是一个目录则为真。
2)[ -f FILE ]:如果FILE存在且是一个普通文件则为真。
【例】
3)[ -z STRING ]:如果STRING的长度为零则为真。
4)[ -n STRING ]:如果STRING的长度为非零则为真。
【例】
5)[ STRING1 = STRING2 ]:如果两个字符串相同则为真。
6)[ STRING1 != STRING2 ]:如果两个字符串不相同则为真。
【例】
3、测试条件:
1)比较:
[ARG1 OP ARG2]:ARG1和ARG2是整数或者取值为整数的变量。OP表示-eq(等于)、-ne(不等于)、-It(小于)、-Ie(小于等于)、-gt(大于)、-ge(大于等于)。
2)“与、或、非”逻辑运算:
EXPR表示任意一种测试条件。
[!EXPR]:!表示逻辑反。
[EXPR1 -a EXPR2]:-a表示逻辑与。
[EXPR1 -o EXPR2]:-o表示逻辑或。
【例1】
【例2】
4、if/then/elif/else/fi
如果两条命令写在同一行则需要用“;”号隔开,命令和各参数之间必须用空格隔开。if命令的参数组成一条子命令,如果该子命令的输出状态为0(表示真),则执行then后面的子命令;如果为假(输出状态为非0),则执行elif、else或者fi后面的子命令。if后面的子命令通常是测试命令,但也可以是其它命令。Shell脚本没有{}括号,所以用fi表示if语句块的结束。
【例1】
注:“:”是一个特殊的命令,称为空命令,该命令不做任何事,但是输出状态总是真。
【例2】
注:read命令的作用是等待用户输入一行字符串,将该字符串存到一个shell变量中。
5、&&与||
&&相当于“if …then…”,而||相当于“if not…then…”。&&和||用于连接两个命令,而-a和-o仅用于在测试表达式中连接两个测试条件。
【例1】
【例2】
6、case/esac
Shell中的case命令可类比C语言的switch/case语句。C语言的case只能匹配整型或字符型常量表达式,而shell脚本的case可以匹配字符串和Wildcard(通配符)。每个匹配分支可以有若干条命令,末尾必须以“;;”结束。执行时找到第一个匹配的分支并执行相应的命令,然后直接跳到esac后面,不需要像C语言一样用break跳出。
【例】
- Shell脚本的条件测试
- shell脚本及条件测试
- shell脚本之条件测试
- shell脚本编程-脚本语法-条件测试
- shell的条件测试
- Shell脚本语法 条件测试:test
- shell 脚本之条件测试用法
- shell脚本之条件测试与判断
- Shell里的测试条件
- shell脚本中的条件测试if中的-z到-d的意思
- shell脚本中的条件测试if中的-z到-d的意思
- shell脚本中的条件测试if中的-z到-d的意思
- shell脚本中的条件测试if中的-z到-d的意思
- 【shell】脚本中if条件的判断
- shell脚本的条件判断语句
- Linux Shell 脚本应用——条件测试
- Shell脚本(2)之条件测试和流程控制
- Shell脚本条件相关
- struts2:数据校验,通过Action中的validate()方法实现校验,图解
- hbase各个组件的作用以及hbase的读写流程
- top
- arm三大编译器的不同选择编译
- 跑马灯textview
- Shell脚本的条件测试
- 多维数组转成一维数组(数组扁平化)
- leetcode 54|59. Spiral Matrix 1|2
- 大数据之HDFS详解(概念和特性、客户端命令行、读写数据的流程等)
- Android中访问assets本地json文件
- Bootstrap 轻量级后台管理系统模板--ACE使用介绍
- Sublime Text
- 05:最大值和最小值的差
- 降维算法(PCA)