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

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 [[email protected] /]# [ -z "$file1" ] && echo ture || echo false
 2 ture
 3 [[email protected] /]# [ -n "$file1" ] && echo ture || echo false
 4 false
 5 [[email protected] /]# [ -z "$file1" -a -z "$file2" ] && echo ture || echo false
 6 ture
 7 [[email protected] /]# [ -n "$file1" -a -n "$file2" ] && echo ture || echo false
 8 false
 9 [[email protected] /]# [ -n "$file1" -o -n "$file2" ] && echo ture || echo false
10 false
11 [[email protected] /]# [ -n "$file1" -o -z "$file2" ] && echo ture || echo false
12 ture
13 [[email protected] /]# [[  "$file1" =  "$file2"  ]] && echo  true || echo false
14 true
15 [[email protected] /]# [[  "$file1" !=  "$file2"  ]] && echo  true || echo false
16 false
17 [[email protected] /]# [[ -n $file1 && -n $file2  ]] && echo  true || echo false
18 false
19 [[email protected] /]# [[ -n $file1 || -n $file2  ]] && echo  true || echo false
20 false
21 [[email protected] /]# [[ -n $file1 || -z $file2  ]] && echo  true || echo false
22 true

    整数测试举例:

  

  

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

  

时间: 2024-11-05 13:40:47

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

《跟老男孩学Linux运维之shell编程实战》-第五章 shell脚本的条件测试

本文的知识点是关于shell脚本的条件测试的相关内容. 通常在shell脚本中我们需要做各式各样的条件判断,比如,测试一个文件是否存在.是否为文件或目录.是否 具有执行权限等等,所以在shell脚本中,条件判断还是至关重要的.接下来我们进入正题:shell脚本的条件测试. 1.在bash编程中,条件测试常用的语法形式如下表: 提示: 语法1中的test命令和语法2中的[]是等价的.语法3中的[[]]双中括号为扩展的test命令. 语法4中的(())常用于计算. 在双中括号[[]]中可以使用通配符

shell脚本—根据文件个数定时备份

最近在了解Jenkins时,出现这样一个问题:linux ext3系统目录下的子目录个数不能超过31998个(参考:http://www.xshell.net/linux/1267.html),但jenkins在不停的编译版本时,有时候几个小时就创建了30000多个日志文件夹的目录,从而要随时的清理此文件夹下的目录.于是就写了个脚本来实现自动备份功能.由于很久没有接触过shell,所以花了一天来实现,比较汗颜!主要是对shell的格式,语法之类的不是很了解,在网上找了些资料,边写边调试!废话不多

使用shell脚本清空文件

使用shell脚本清空文件 在最近的项目中,会生成很多日志文件,所以需要写一个脚本来手动清空它们,下面提供几种典型方法. 方法1 代码 #!/bin/bash ##方法1 echo "" > $1 echo "$1 cleaned up." 运行截图 说明 我想大家应该注意到了文件其实并没有真正被清空,而是有一个空行. 方法2 代码 #!/bin/bash ##方法2 : > $1 echo "$1 cleaned up." 运行截图

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

转载:http://cxj632840815.blog.51cto.com/3511863/1168709 Shell编程中的条件测试 在Linux编程中经常会用到判断数值的大小,字符串是否为空这样或那样的条件测试语句 今天说说Linux中的常用的条件测试语句 1,判断两个数字的大小 -eq 相等或等于 -ne 不想等或不等于 -gt 第一个数大于第二个数 -lt 第一个数小于第二个数 -le 第一个数小于等于第二个数 -ge 第一个数大于等于第二个数 -z 空串 = 两个字符相等 != 两个字

Shell脚本(条件测试&amp;IF判断)——理论篇2

Shell脚本理论篇2--条件测试&IF判断 条件测试 上一篇博客我们提到了预定义变量中有个$?变量用于判断命令是否执行成功.那么如何使用呢? 这时候就需要专门的测试工具--test命令,对特定条件进行测试,并使用$?对返回值进行判断,其命令形式如下: test 条件表达式 & [ 条件表达式 ] //更为常用 注意: 中括号"["和"]"与条件表达式之间均需要使用空格隔开,否则会出现错误!! 一.文件测试 格式: [ 操作符 文件或目录 ] 常用操

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

1. 测试开关 Shell中自带的一些测试指令, 下表列出这些测试指令的含义以及是否可用于 test命令, bash, ksh. 开关 test bash ksh 定义 -a FILE   支持 支持 只是文件存在 -b FILE 支持 支持 支持 文件存在, 并且是一个类似于 /dev 下的磁盘设备之类的块文件 -c FILE 支持 支持 支持 文件存在, 并且是一个类似于 /dev 下的TTY设备之类的字符文件 -d FILE 支持 支持 支持 文件存在, 并且是一个标准目录 -e FILE

shell脚本的条件测试与比较

条件测试语法: 语法1:test <测试表达式> 这是利用test命令进行条件测试表达式的方法. 语法2:[ <测试表达式> ]:这是通过单括号进行条件测试表达式的方法,和test命令的用法相同,推荐使用的 语法3:[[ <测试表达式> ]]:这是通过[[]]进行条件测试表达式的方法,是比test和[]更新的语法格式 语法4:((<c测试表达式>)):这是通过(())进行条件表达式的方法,一般用于if语句里 针对上面的说明: 语法1和语法2是相同的,语法3是

Shell脚本的条件测试和if条件语句使用

博文目录一.条件测试操作1.文件测试:2.整数值比较:3.字符串比较:4.逻辑测试:二.使用if条件语句1.单分支if语句2.双分支if语句3.多分支if语句 一.条件测试操作 要使Shell脚本程序具备一定的"智能",面临的第一个问题就是如何区分不同的情况以确定执行何种操作.Shell环境根据命令执行后的返回状态值(¥?)来判断是否执行成功,当返回值为0时表示成功,否则(非0值)表示失败或异常.使用专门的测试工具--test命令,可以对特定条件进行测试,并根据返回值来判断条件是否成立

shell脚本复制文件夹内容到另外的文件夹,如果存在则自动备份

有时我们需要将一个文件夹覆盖到我们的工作目录,但需要自动备份已经存在的文件,一个一个去备份太麻烦了,全部备份又没有必要.shell脚本可以很好滴完成这个任务.原文链接http://back.zhizhi123.com/?p=85 #!/bin/sh upload_dir=/alidata/www/sh/useful-shell-script/upload/ www_dir=/alidata/www/sh/useful-shell-script/www/ backexist() { filelis