shell中数字、字符串、文件比较测试
1.逻辑运算符:与&& 或|| 非!
| &&:双目操作符:与运算中:如果第一个数为假,结果一定为假 ==> 短路操作符
||:双目操作符:或运算中:如果第一个数为真,结果一定为真 ==> 短路操作符 !:单目操作符: 对数取反. |
例子:
| [root@lbg test]# echo 2 && echo 3 2 3 [root@lbg test]# echo 2 || echo 3 2 [root@lbg test]# |
2.测试表达式
| [ 表达式 ] ---比较数字大小 ,表达式与中括号两端必须有空格 [[ 表达式 ]] --比较字符大小,表达式与中括号两端必须有空格。 |
| num1 -eq num2 //测试num1是否等于num2 (eq:equal)
-ne //测试num1是否不等于num2 -gt //大于 great than -lt //小于 less than -ge //大于等于 great equal -le //小于等于 less equal |
例子:
| [root@lbg test]# [ 1 -lt 2 ] && echo yes || echo no yes [root@lbg test]# [ 1 -gt 2 ] && echo yes || echo no no |
| 'string1' == 'string2' //做等值比较
!=,<> //不等值比较 -n "$a" //跟变量名,a变量的值的长度非0为真 -z "$a" //测试是否为空的,空为真,非空为假,即值得长度为0为真 |
例子:
| [root@lbg test]# [[ a == b ]] && echo yes || echo no no [root@lbg test]# [[ a != b ]] && echo yes || echo no yes [root@lbg test]# echo $a 123 [root@lbg test]# [[ -n $a ]] && echo yes || echo no yes [root@lbg test]# declare b ---$b为空 [root@lbg test]# [[ -n $b ]] && echo yes || echo no no [root@lbg test]# [[ -z $b ]] && echo yes || echo no yes |
| -e /path/to/somewhere 是否存在,存在为真 --exist
-f /path/to/somewhere 是否是文件,是则为真 --file -d //测试是否是目录,是为真 --directory -l //测试是否是链接,是为真 --link -r //是否可读 --read -w //是否可写 --write -x //是否可执行 --execute 说明:文件测试用单个[]或者[[]]都行。 |
例子:
| [root@lbg test]# ll ----只有普通文件a -rw-r--r-- 1 root root 37 Oct 5 19:13 a [root@lbg test]# [[ -e /test/a ]] && echo yes || echo no yes [root@lbg test]# [[ -e /test/b ]] && echo yes || echo no no [root@lbg test]# [[ -d /test/a ]] && echo yes || echo no no [root@lbg test]# [ -x /test/a ] && echo yes || echo no no |
6.组合条件测试
| ! //取反,写在表达式之前,且用空格隔开
-a //与条件,写在[]里面,表示and -o //或条件,写在[]里面,表示or |
例子:
| [root@lbg test]# [ d == f ] && echo yes || echo no no [root@lbg test]# [ ! d == f ] && echo yes || echo no yes [root@lbg test]# [ ! d == f ] && [ a == b ]&& echo yes || echo no no [root@lbg test]# [ ! d == f -a c == b ] && echo yes || echo no no [root@lbg test]# [ ! d == f -o c == b ] && echo yes || echo no yes |
shell中数字、字符串、文件比较测试的更多相关文章
- Linux Shell 04 数字/字符串/文件测试
一. 数字测试 格式:n1 -op n2 测试操作op: eq/ne/le/ge/lt/gt --> 等于/不等于/小于等于/大于等于/小于/大于 1. 数字比较可以使用特殊的( ...
- (转)Shell中获取字符串长度的七种方法
Shell中获取字符串长度的七种方法 原文:http://blog.csdn.net/jerry_1126/article/details/51835119 求字符串操作在shell脚本中很常用,下面 ...
- shell中取字符串子串的几种方式 截取substr
shell中取字符串子串的几种方式 echo "123456789" | awk '{print substr($0,5,2)}' 截取 1)awk中函数substrsubstr( ...
- shell中截取字符串的方法总结
shell中截取字符串的方法有很多种, ${expression}一共有9种使用方法. ${parameter:-word} ${parameter:=word} ${parameter:?word} ...
- shell中的字符串操作和数学运算
字符串操作 变量赋值: 说明:变量值可以用单引号.双引号.或者不加任何引号来赋值给变量 变量名="变量值" 变量名='变量值' 变量名=变量值 例如:str="hel ...
- 在Shell中使用函数文件
需要编写一个较庞大的脚本时,可能会涉及许多函数.变量.这是通常建议将众多的函数.变量放入一个单独的脚本内.这样做的好处很明显,不用担心某个函数.变量是否已经被定义和使用,也不用频繁地定义.清除函数和变 ...
- LinuxShell脚本编程基础5--数值,字符串,文件状态测试,((..))和[[..]]的使用
1.数值比较 ! /bin/bash echo "enter a score:" read num1 ] then echo "Very Good" elif ...
- 【前端_js】js中数字字符串之间的比较
js中字符串间的比较是按照位次优先,比较各字符的ASCII大小,包括数字字符串之间的比较. 1.console.log("1"<"3");//true 2 ...
- Shell中判断字符串是否为数字的6种方法分享
#!/bin/bash ## 方法1 a=1234;echo "$a"|[ -n "`sed -n '/^[0-9][0-9]*$/p'`" ] &&a ...
随机推荐
- 优化Mysql数据库的8个方法
通过8个方法优化Mysql数据库:创建索引.复核索引.索引不会包含含有NULL值的列.使用短索引.排序的索引问题.like语句操作.不要在列上进行运算.不使用NOT IN 和<>操作 1 ...
- Java安全之Commons Collections3分析
Java安全之Commons Collections3分析 文章首发:Java安全之Commons Collections3分析 0x00 前言 在学习完成前面的CC1链和CC2链后,其实再来看CC3 ...
- 蓝桥杯 Island Hopping Java代码
问题描述 太平洋岛网公司(PLN)已经瞄向了太平洋中的一些群岛.这些群岛没有快捷的互联网连接.PLN计划向群岛提供互联网服务,以开发这个太平洋中潜在的市场.每组群岛的核心岛屿已经被深海电缆 ...
- Messenger实现进程间通信(IPC)
messenger内部也是实现aidl通信,所以可以看做一个轻量级aidl,但相对比较简单.首先开启一个服务并实现一个Handler用来处理消息,在onbind方法中返回IBinder对象,通过Ser ...
- socket 参考文档
socket.io 中文手册,socket.io 中文文档转载于:http://www.cnblogs.com/xiezhengcai/p/3956401.html 服务端 io.on('connec ...
- MongoDB用户,角色管理 --- MongoDB基础用法(三)
用户管理 用户创建 MongoDB采用基于角色的访问控制(RBAC)来确定用户的访问. 授予用户一个或多个角色,确定用户对MongoDB资源的访问权限和用户可以执行哪些操作. 用户应该只有最小权限集才 ...
- Jmeter CSV数据文件设置使用之一
第一步: 在Jmeter 里,新建CSV数据文件设置,选择对应的文件,变量名称根据需要自己取,如bug,test,如下图所示: 第二步: 配置Jmetet 数据源,参数对应的名称要与CSV数据文件设置 ...
- pytho爬虫使用bs4 解析页面和提取数据
页面解析和数据提取 关注公众号"轻松学编程"了解更多. 一般来讲对我们而言,需要抓取的是某个网站或者某个应用的内容,提取有用的价值.内容一般分为两部分,非结构化的数据 和 结构化的 ...
- Python3网络学习案例一:Ping详解
1. 使用Ping做什么 ping用于确定本地主机是否能与另一台主机成功交换(发送与接收)数据包,再根据返回的信息,就可以推断TCP/IP参数是否设置正确,以及运行是否正常.网络是否通畅等. 2. 效 ...
- linux的mysql数据库创建和删除
mysql -h localhost -u 用戶名 -p密碼 //连接数据库use desk_show; ...