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 ...
 
随机推荐
- MeteoInfoLab脚本示例:MERRA HDF数据
			
MERRA是NOAA的一种再分析资料,HDF数据遵循COARDS协议,读取比较简单.脚本程序: #Add data file folder = 'D:/Temp/hdf/' fns = 'MERRA3 ...
 - ip地址和网络端口总结
			
ip地址 ip地址默认指ipv4地址,用4个字节表示,转换为点分10进制,可以表达范围0.0.0.0到255.255.255.255的地址,大约为42.95亿个地址.互联网编号分配机构(IANA,In ...
 - 真的可以啊,用C语言实现面向对象编程O O P!C语言真的无所不能~
			
解释区分一下C语言和OOP 我们经常说C语言是面向过程的,而C++是面向对象的,然而何为面向对象,什么又是面向过程呢?不管怎么样,我们最原始的目标只有一个就是实现我们所需要的功能,从这一点说它们是殊途 ...
 - CVE-2010-2883-CoolType.dll缓冲区溢出漏洞分析
			
前言 此漏洞是根据泉哥的<漏洞战争>来学习分析的,网上已有大量分析文章在此只是做一个独立的分析记录. 复现环境 操作系统 -> Windows XP Sp3 软件版本 -> A ...
 - k8s-获取kuboardtoken
			
master节点执行命令 echo $(kubectl -n kube-system get secret $(kubectl -n kube-system get secret | grep kub ...
 - vm虚拟机设置共享文件夹不显示
			
1. 确认VMtools已经装好,开启共享文件夹,设置好共享目录 2.执行命令 sudo mount -t vmhgfs .host:/ /mnt/hgfs如果出现错误: Error: cannot ...
 - centos8安装lvs
			
一,配置ip转发 [root@localhost sysctl.d]# sysctl -a | grep ip_forward net.ipv4.ip_forward = 1 说明:如果net.ipv ...
 - 初学 Python 需要安装哪些软件?
			
自动配置.有效求助.协作编程.版本控制.一站式解决 Python 新手练习中的痛点. 痛点 这个学期,我在北得克萨斯大学(University of North Texas)教 INFO 5731: ...
 - offer_JZ25
			
offer_JZ25 题目:输入一个复杂链表(每个节点中有节点值,以及两个指针,一个指向下一个节点,另一个特殊指针random指向一个随机节点),请对此链表进行深拷贝,并返回拷贝后的头结点.(注意,输 ...
 - 自定义View(进度条)
			
继承View重写带两个参数的构造方法,一个参数的不行不会加载视图,构造方法中初始化画笔这样不用没次刷新都要初始化浪费内存,在ondraw方法中绘图,invalidate方法会掉用ondraw方法重新绘 ...