shell脚本之文件测试操作符及整数比较符

原文:http://www.cnblogs.com/Steward-Xu/p/6722592.html

一、文件测试操作符:

  在书写测试表达式是,可以使用一下的文件测试操作符。

  

  更多的参数可以help test或者man bash

二、字符串测试操作符:

  字符串测试操作符的作用:比较两个字符串是否相同、字符长度是否为0,字符串是否为null(注:bash区分长度字符串和空字符串)

  “=”比较两个字符串是否相同,与“==”等价,如:if [“$a”=“$b”],其中$a这样的变量最好用””括起来,因为如果中间有空格等就会出错。更好的方法是if [“${a}”=“${b}”]。

  “!=”比较两个字符串是否相同,不同则为真。

  书写表达式是可以使用以下的测试操作符号:

  

三、整数二元比较操作符:

  其中含有:-eq、-ne、-gt、-ge、-lt、-le在[]中使用的比较符

  ==、!=、>、>=、<、<=在()和[[]]中使用的比较符

  

四:变量的数值计算:含:“^”、“!=”以及赋值运算。  

   

  

  实际举例:

    多条件字符串测试举例:

  

 1 [root@CentOS /]# [ -z "$file1" ] && echo ture || echo false
2 ture
3 [root@CentOS /]# [ -n "$file1" ] && echo ture || echo false
4 false
5 [root@CentOS /]# [ -z "$file1" -a -z "$file2" ] && echo ture || echo false
6 ture
7 [root@CentOS /]# [ -n "$file1" -a -n "$file2" ] && echo ture || echo false
8 false
9 [root@CentOS /]# [ -n "$file1" -o -n "$file2" ] && echo ture || echo false
10 false
11 [root@CentOS /]# [ -n "$file1" -o -z "$file2" ] && echo ture || echo false
12 ture
13 [root@CentOS /]# [[ "$file1" = "$file2" ]] && echo true || echo false
14 true
15 [root@CentOS /]# [[ "$file1" != "$file2" ]] && echo true || echo false
16 false
17 [root@CentOS /]# [[ -n $file1 && -n $file2 ]] && echo true || echo false
18 false
19 [root@CentOS /]# [[ -n $file1 || -n $file2 ]] && echo true || echo false
20 false
21 [root@CentOS /]# [[ -n $file1 || -z $file2 ]] && echo true || echo false
22 true

    整数测试举例:

  

  

 1 [root@CentOS /]# a1=12
2 [root@CentOS /]# a2=13
3 [root@CentOS /]# [ $a1 = $a2 ] && echo true || echo false
4 false
5 [root@CentOS /]# [ $a1 != $a2 ] && echo true || echo false
6 true
7 [root@CentOS /]# [ $a1 -le $a2 ] && echo true || echo false
8 true
9 [root@CentOS /]# [ $a1 -ge $a2 ] && echo true || echo false
10 false
11 [root@CentOS /]# [ $a1 -gt $a2 ] && echo true || echo false
12 false
13 [root@CentOS /]# [ $a1 -lt $a2 ] && echo true || echo false
14 true
15 [root@CentOS /]# [ $a1 -eq $a2 ] && echo true || echo false
16 false
17 [root@CentOS /]# echo $a1 $a2
18 12 13

  

(转)shell脚本之文件测试操作符及整数比较符的更多相关文章

  1. shell脚本之文件测试操作符及整数比较符

    一.文件测试操作符: 在书写测试表达式是,可以使用一下的文件测试操作符. 更多的参数可以help test或者man bash 二.字符串测试操作符: 字符串测试操作符的作用:比较两个字符串是否相同. ...

  2. shell脚本中文件测试

    shell脚本中文件测试 author:headsen chen  2017-10-17  14:35:19 个人原创,转载请注明作者,否则 依法追究法律责任 [ -f  filename  ]   ...

  3. shell脚本之文件测试表达式

    1.文件测试表达式的用法 我们在编程时处理一个对象时,需要对对象进行测试,只有符合要求的才采取操作处理:这样做的好处是避免程序出错以及无所畏的消耗系统资源,这个测试的对象可以是文件.字符串.数字等. ...

  4. Shell脚本的条件测试与比较

    Shell脚本的条件测试与比较 一.shell脚本的条件测试 通常,在bash的各种条件结构和流程控制结构中都要进行各种测试,然后根据测试结构执行不同的操作,有时也会与if等条件语句相结合,来完成测试 ...

  5. shell脚本之六:shell脚本的条件测试与比较

    六.shell脚本的条件测试与比较 (一)条件表达式的常见语法 1.条件表达式6种写法(if,while) 语法1:test<测试表达式> 语法2:[ <测试表达式>] #中括 ...

  6. Shell脚本统计文件行数

    Shell脚本统计文件行数 转自 http://www.jb51.net/article/61943.htm    示例:row_count.sh文件 awk '{print NR}' row_cou ...

  7. shell 脚本大文件处理

    shell  脚本大文件处理 字符串处理 s='{"_id":{"$oid":"59b73d80930c17474f9f050d"},&qu ...

  8. Shell脚本下条件测试(eq.ne.....)(转载)

    转载:http://cxj632840815.blog.51cto.com/3511863/1168709 Shell编程中的条件测试 在Linux编程中经常会用到判断数值的大小,字符串是否为空这样或 ...

  9. Shell脚本中的 测试开关 和 特殊参数

    1. 测试开关 Shell中自带的一些测试指令, 下表列出这些测试指令的含义以及是否可用于 test命令, bash, ksh. 开关 test bash ksh 定义 -a FILE   支持 支持 ...

随机推荐

  1. wpf使用truetype字体ttf

    查了半天都是语焉不详,这篇算是稍微详细点的:http://www.cnblogs.com/junhengml/p/6878933.html 要先查找到字体的字库名称,才能使用: <Window. ...

  2. delphi json用法

    用法:uses Superobject, Sperjsondelphi里有json单元. procedure TForm2.SuperObjectClick(Sender: TObject); var ...

  3. delegate Func Action Expression

    using System; using System.Collections.Generic; using System.Linq; using System.Linq.Expressions; na ...

  4. angular 模板表单

  5. gets()scanf()有害------c++程序设计原理与实践(进阶篇)

    最简单的读取字符串的方式是使用gets(),例如: char a[12]; gets(a); 但gets()和scanf()是有害的,曾经有大约1/4的成功黑客攻击是由于gets()和它的近亲scan ...

  6. c++缓冲区------c++ Primer Plus

    通常,通过使用缓冲区可以更高效地处理输入和输出.缓冲区是用作中介的内存块,它是将信息从设备传输到程序或从程序传输给设备的临时存储工具.通常,像硬盘驱动器这样的设备以512字节(或更多)的块为单位来传输 ...

  7. [Algorithm]排序

    一.排序算法 1.插入排序 1) 直接插入排序:(插入类) 1 void InsertSort( ElemType R[], int n ) 2 { 3 for ( int i = 2; i < ...

  8. idea中文输入问题

    desc: idea2017.3.4输入中文,光标不跟随. 解决方案:

  9. [NOI2010]能量采集 BZOJ2005 数学(反演)&&欧拉函数,分块除法

    题目描述 栋栋有一块长方形的地,他在地上种了一种能量植物,这种植物可以采集太阳光的能量.在这些植物采集能量后,栋栋再使用一个能量汇集机器把这些植物采集到的能量汇集到一起. 栋栋的植物种得非常整齐,一共 ...

  10. SLAM入门必收藏的资料

    搜集了各大网络,请教了SLAM大神,终于把SLAM的入门资料搜集全了!在分享资料前,我们先来看看,SLAM技术入门前需要具备哪些知识?首先学习SLAM需要会C和C++,网上很多代码还用了11标准的C+ ...