整数比较
方法一:[  ] 或 [[  ]]
   (1) 此方法需要使用整数比较运算符。[标注:equal 等于   greater 大于   less-then 小于]

(2) 使用时一定要注意前后一定要有的空格:[  num1 -eq num2  ]   [[  num1 -eq num2  ]]

方法二:((  ))
  (1) 此方法使用的是类似数学运算比较的运算符:==  >=  <=  !=

# a=2;b=3
# [ $a -eq $b ];echo $?
1
# [ $a -lt $b ];echo $?
0
# (($a==$b));echo $?
1
# (($a<=$b));echo $?
0
# (($a!=$b));echo $?
0
# ((10-2==8));echo $?
0
# ((10-2!=8));echo $?
1

字符串比较

方法一:[ ] 或 [[  ]] 

(1) 使用的比较运算符是:=  !=
  (2) 如果要使用通配符,要用[[ ]]
  (3) 写的时候一定要注意等号两边都要有空格

# string0="";string1="abc"
===判断字符串是否为空===
# [ -z $string0 ];echo $?
0
# [ -z $string1 ];echo $?
1 # [ $string1 = "abc" ];echo $?
0
# [ $string1 != "abc" ];echo $?
1 # [[ $string1 = ??? ]];echo $?
0
# [[ $string1 = a* ]];echo $?
0

方法二:test

-z  判断字符串是否为空,若为空则为真
-n  判断字符串是否为不空,若为不空则为真
 

文件测试

文件类型判断:
-e   测试目录或文件是否存在(exist)
-f    测试该文件名是否存在且为文件(file)
-d   测试该文件名是否存在且为目录(directory)
-L   测试该文件名是否存在且为链接文件(Link)
-b   测试该文件名是否存在且为块设备(block)
-c   测试该文件名是否存在且为字符设备
-p   测试该文件名是否存在且为管道文件

文件权限判断:
-s   测试文件是否存在且内容非空(应当注意有1个空格也是非空)
-r    测试当前用户是否有可读权限
-w   测试当前用户是否有可写权限
-x    测试当前用户是否有可执行权限
-u    测试文件名是否存在并且具有SUID属性
-g    测试文件名是否存在并且具有SGID属性
-k    测试文件名是否存在并且具有Sticky属性


逻辑操作符

-a 逻辑与:操作符两边均为真,结果为真,否则为假。
-o 逻辑或:操作符两边一边为真,结果为真,否则为假。
!   逻辑否:条件为假,结果为真.

测试判断常配合if/else语句使用,看看写法:
if [ -w file1 -a -w file2 ]
if [ $? -eq 0 ]
then
echo "file1 file2 have write permisson"
else
echo "file1 file2 have not w permisson"
fi if [ -d /tmp/dir1 ]
then
echo "the dir1 is existed"
else
echo "the dir1 is not existed"
mkdir /tmp/dir1
fi

[shell基础]——整数比较;字符串比较;文件测试;逻辑测试符的更多相关文章

  1. shell中数字、字符串、文件比较测试

    1.逻辑运算符:与&&     或||    非!  &&:双目操作符:与运算中:如果第一个数为假,结果一定为假   ==> 短路操作符 ||:双目操作符:或运算 ...

  2. Shell基础(四):字符串截取及切割、字符串初值的处理、基使用Shell数组、expect预期交互、使用正则表达式

    一.字符串截取及切割 目标: 使用Shell完成各种Linux运维任务时,一旦涉及到判断.条件测试等相关操作时,往往需要对相关的命令输出进行过滤,提取出符合要求的字符串. 本案例要求熟悉字符串的常见处 ...

  3. shell命令之根据字符串查询文件对应行记录

    显示xxx字符串对应的行数,并向前打印3行,向后打印2行,查找对应文件为filename.txt 命令:grep -n 'xxx' -A3 -B2 --color=auto filename.txt ...

  4. shell之算数运算符、逻辑运算符、关系运算符、布尔运算符、文件测试运算符

    注意事项: (1)bash不支持简单的数学运算,但是可以通过其他命令来实现,例如 awk 和 expr,expr 最常用: (2)完整的表达式要被 ` ` 包含,注意这个字符不是常用的单引号,在 Es ...

  5. 004-Shell 基本运算符、算术运算符、关系运算符、布尔运算符、辑运算符、字符串运算符、文件测试运算符

    一.概述 Shell 和其他编程语言一样,支持多种运算符,包括: 算数运算符 关系运算符 布尔运算符 字符串运算符 文件测试运算符 二.算术运算符 原生bash不支持简单的数学运算,但是可以通过其他命 ...

  6. shell基础教程

    shell基础教程 一.shell基础知识 1.shell是什么? Shell 是一个用C语言编写的程序,它是用户使用Linux的桥梁.Shell既是一种命令语言,又是一种程序设计语言. Shell ...

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

    shell脚本之文件测试操作符及整数比较符 原文:http://www.cnblogs.com/Steward-Xu/p/6722592.html 一.文件测试操作符: 在书写测试表达式是,可以使用一 ...

  8. shell运算符之 关系运算符,算数运算符,布尔运算符,字符串运算符和文件测试运算符

    shell运算符有很多,关系运算符,算数运算符,布尔运算符,字符串运算符和文件测试运算符 1,算术运算符 原声bash 不支持简单的算术运算,可以使用expr 工具 两点注意: 表达式和运算符之间要有 ...

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

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

随机推荐

  1. 【MySQL】DNS与MHA/ZABBIX构建的高可用MySQL

    MySQL实例组与DNS和MHA/ZABBIX架构示意图: DNS搭建:http://www.cnblogs.com/jiangxu67/p/4801230.html MHA分析:http://www ...

  2. 五、用户数据报传输(UDP)

    1.UDP常用的发送和接收函数 int recvfrom(int sockfd,void *buf,int len,unsigned int flags,struct sockaddr *from,i ...

  3. ASP.NET的SEO:SEO Hack --- Html注入和Nofollow

    ASP.NET的SEO:目录 黑帽(black hat)SEO主要是指采取"不怎么道德"(暂时就这么形容吧!)的方式进行搜索引擎优化. 1. 注入攻击,包括Sql注入和Html注入 ...

  4. 使用SSL确保通信中的数据安全

    #region Server /// <summary> /// 用于保存非对称加密(数字证书)的公钥 /// </summary> private string public ...

  5. 第十周java 学习总结

    20145306 java的网络编程 网络概述 网络编程技术是当前一种主流的编程技术,随着联网趋势的逐步增强以及网络应用程序的大量出现,所以在实际的开发中网络编程技术获得了大量的使用.至于以后的实际修 ...

  6. Windows 2008修改密码策略方法

    Windows Server 2008默认强制要求定期更改密码,这个功能有时实在是让人烦不胜烦,适当情况下可以考虑关闭. 方法如下: 1.按windows键+R(或者点开始---动行)打开运行窗口,输 ...

  7. JavaScript中的Get和Set访问器

    今天要和大家分享的是JavaScript中的Get和Set访问器,和C#中的访问器非常相似. 标准的Get和Set访问器的实现   function Field(val){       this.va ...

  8. 将base64格式的字符串生成文件

    using System; using System.IO; namespace ConsoleApplication1 { class Program { static void Main(stri ...

  9. ASP.NET状态保持:ViewState

    ViewState是ASP.NET的.aspx页面特有的,是页面级的状态保持.一般用在内网系统和网站后台. namespace WebFormTest.TestCollect { public par ...

  10. 如何用asp.net MVC框架、highChart库从sql server数据库获取数据动态生成柱状图

    如何用asp.net MVC框架.highChart库从sql server数据库获取数据动态生成柱状图?效果大概是这样的,如图: 请问大侠这个这么实现呢?