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. MongoDB整理笔记の安全访问

    MongoDB安全访问将从以下三个方面得到控制!   1.绑定IP内网地址访问MongoDB服务     2.设置监听端口     3.使用用户名和密码 绑定IP内网地址访问MongoDB服务 Mon ...

  2. c# 对象反射赋值未知属性需类型转换

    反射某个类时,对于类的属性,字段.已知有已知的方法,未知有未知的写法. 而SetValues赋值则需要类型转换 情况1,该属性类型是已知类型,例如:int int value=500; propert ...

  3. (二)RabbitMQ使用笔记

    1.RabbitMQ简介 RabbitMQ是流行的开源消息队列系统,用erlang语言开发.RabbitMQ是AMQP(高级消息队列协议)的标准实现. 官网:http://www.rabbitmq.c ...

  4. 51 nod 1350 斐波那契表示

    每一个正整数都可以表示为若干个斐波那契数的和,一个整数可能存在多种不同的表示方法,例如:14 = 13 + 1 = 8 + 5 + 1,其中13 + 1是最短的表示(只用了2个斐波那契数).定义F(n ...

  5. 一个div添加多个背景图片

    效果图如下:

  6. 关于DataGridView的ClearSelection方法

    最近做winform项目,遇到一个问题.  纠结了几天,最终解决了,记录一下! 新建一个Form窗体,拽一个DataGridView上去,然后写一个方法 private void BindData() ...

  7. 魔方方法之--类的构造(__init__,__new__)和析构(__del__)方法

    构造方法(参见小甲鱼入门教程) __ init__()方法:类的初始化方法,初始化类对象时被调用,需要的时候再调用它 注意点:这个方法的返回值必须是None class Rectangle(): de ...

  8. Shell脚本——初识

    1.在一般情况下,人们并不区分 Bourne Shell 和 Bourne Again Shell,所以,像 #!/bin/sh,它同样也可以改为 #!/bin/bash. #! 告诉系统其后路径所指 ...

  9. 【离散数学】 SDUT OJ 1.3按位AND和按位OR

    1.3按位AND和按位OR Time Limit: 1000 ms Memory Limit: 65536 KiB Submit Statistic Problem Description 已知长度为 ...

  10. libcaffe.so.1.0.0: cannot open shared object file: No such file or directory 运行时报错

    caffe安装好后lib没有配置到/usr/lib或/usr/local/lib中,需手动配置: sudo vim ~/.bashrc export LD_LIBRARY_PATH=your_path ...