• 文件表达式

      if [ -f  file ]    如果文件存在
      if [ -d ...   ]    如果目录存在
      if [ -s file  ]    如果文件存在且非空 
      if [ -r file  ]    如果文件存在且可读
      if [ -w file  ]    如果文件存在且可写
      if [ -x file  ]    如果文件存在且可执行

      • 整数变量表达式

      if [ int1 -eq int2 ]    如果int1等于int2   
      if [ int1 -ne int2 ]    如果不等于    
      if [ int1 -ge int2 ]       如果>=
      if [ int1 -gt int2 ]       如果>
      if [ int1 -le int2 ]       如果<=
      if [ int1 -lt int2 ]       如果<

      • 字符串变量表达式

      If  [ $a = $b ]                 如果string1等于string2
                                      字符串允许使用赋值号做等号
      if  [ $string1 !=  $string2 ]   如果string1不等于string2       
      if  [ -n $string  ]             如果string 非空(非0),返回0(true)  
      if  [ -z $string  ]             如果string 为空
      if  [ $sting ]                  如果string 非空,返回0 (和-n类似)

    • [ -a FILE ]  如果 FILE 存在则为真。
    • [ -b FILE ]  如果 FILE 存在且是一个块特殊文件则为真。
    • [ -c FILE ]  如果 FILE 存在且是一个字特殊文件则为真。
    • [ -d FILE ]  如果 FILE 存在且是一个目录则为真。
    • [ -e FILE ]  如果 FILE 存在则为真。
    • [ -f FILE ]  如果 FILE 存在且是一个普通文件则为真。
    • [ -g FILE ]  如果 FILE 存在且已经设置了SGID则为真。
    • [ -h FILE ]  如果 FILE 存在且是一个符号连接则为真。
    • [ -k FILE ]  如果 FILE 存在且已经设置了粘制位则为真。
    • [ -p FILE ]  如果 FILE 存在且是一个名字管道(F如果O)则为真。
    • [ -r FILE ]  如果 FILE 存在且是可读的则为真。
    • [ -s FILE ]  如果 FILE 存在且大小不为0则为真。
    • [ -t FD ]  如果文件描述符 FD 打开且指向一个终端则为真。
    • [ -u FILE ]  如果 FILE 存在且设置了SUID (set user ID)则为真。
    • [ -w FILE ]  如果 FILE 如果 FILE 存在且是可写的则为真。
    • [ -x FILE ]  如果 FILE 存在且是可执行的则为真。
    • [ -O FILE ]  如果 FILE 存在且属有效用户ID则为真。
    • [ -G FILE ]  如果 FILE 存在且属有效用户组则为真。
    • [ -L FILE ]  如果 FILE 存在且是一个符号连接则为真。
    • [ -N FILE ]  如果 FILE 存在 and has been mod如果ied since it was last read则为真。
    • [ -S FILE ]  如果 FILE 存在且是一个套接字则为真。
    • [ FILE1 -nt FILE2 ]  如果 FILE1 has been changed more recently than FILE2, or 如果 FILE1 exists and FILE2 does not则为真。
    • [ FILE1 -ot FILE2 ]  如果 FILE1 比 FILE2 要老, 或者 FILE2 存在且 FILE1 不存在则为真。
    • [ FILE1 -ef FILE2 ]  如果 FILE1 和 FILE2 指向相同的设备和节点号则为真。
    • [ -o OPTIONNAME ]  如果 shell选项 “OPTIONNAME” 开启则为真。
    • [ -z STRING ]  “STRING” 的长度为零则为真。 字符串为空即NULL时为真。
    • [ -n STRING ] or [ STRING ]  “STRING” 的长度为非零 non-zero则为真。加-n与不加-n结果相同。
    • [ STRING1 == STRING2 ]  如果2个字符串相同。 “=” may be used instead of “==” for strict POSIX compliance则为真。
    • [ STRING1 != STRING2 ]  如果字符串不相等则为真。
    • [ STRING1 < STRING2 ]  如果 “STRING1” sorts before “STRING2” lexicographically in the current locale则为真。
    • [ STRING1 > STRING2 ]  如果 “STRING1” sorts after “STRING2” lexicographically in the current locale则为真。
    • [ ARG1 OP ARG2 ] “OP” is one of -eq, -ne, -lt, -le, -gt or -ge. These arithmetic binary operators return true if “ARG1” is equal to, not equal to, less than, less than or equal to, greater than, or greater than or equal to “ARG2”, respectively. “ARG1” and “ARG2” are integers.

shell脚本中的条件测试if中的-z到-d的意思的更多相关文章

  1. shell脚本进阶之条件测试与条件语句

       接着上篇博客,今天整理一下关于条件测试和条件语句方面的知识. shell脚本进阶之条件测试    在编写shell脚本时,经常需要对一些条件进行判断,可以使用测试命令test辅助完成测试过程.t ...

  2. SHELL脚本编程的条件测试

    SHELL脚本编程的条件测试 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.条件测试概述 判断某需求是否满足,需要由测试机制来实现 专用的测试表达式需要由测试命令辅助完成测试过 ...

  3. 工程师技术(五):Shell脚本的编写及测试、重定向输出的应用、使用特殊变量、编写一个判断脚本、编写一个批量添加用户脚本

    一.Shell脚本的编写及测 目标: 本例要求两个简单的Shell脚本程序,任务目标如下: 1> 编写一个面世问候 /root/helloworld.sh 脚本,执行后显示出一段话“Hello ...

  4. Shell脚本的编写及测试

                                                      Shell脚本的编写及测试 1.1问题 本例要求两个简单的Shell脚本程序,任务目标如下: 编写一 ...

  5. Shell中的条件测试和循环语句

    1.条件测试:test或[ 如果测试结果为真,则该命令的Exit Status为0,如果测试结果为假,则命令的Exit Status为0 运行结果: 带与.或.非的测试命令[ ! EXPR ] : E ...

  6. shell脚本学习总结(不断更新中)

    前言:自从大学毕业参加工作以来,接触的开发工作都是在服务端完成,于是接触了比较多的Linux当做开发机使用,或多或少有一些重复性的工作,于是开始琢磨学习一些shell脚本的知识,以便处理这些繁琐的事情 ...

  7. 用java代码调用shell脚本执行sqoop将hive表中数据导出到mysql

    1:创建shell脚本 touch sqoop_options.sh chmod 777 sqoop_options.sh 编辑文件  特地将执行map的个数设置为变量  测试 可以java代码传参数 ...

  8. 编写shell脚本让springboot项目在CentOS中开机自启动

    springboot项目部署在CentOS系统上时,如果遇到停电关机,公司的实施人员就得跑到甲方现场重新启动项目并测试,很是麻烦,这里探讨如何编写shell脚本控制springboot项目开机时自动启 ...

  9. shell脚本编程之条件判断

    条件测试类型: 整数测试 字符测试 文件测试 条件测试的表达式的三种方法: 1.[ expression ] 命令测试 2.[[ expression ]] 关键字测试 3.test expressi ...

随机推荐

  1. 《新标准C++程序设计》2.1-2.3(C++学习笔记3)

    1.结构化程序设计的不足 程序=算法+数据结构 数据结构和变量相对应,算法和函数相对应,算法是用来操作数据结构的. 结构化程序设计中,函数和其所操作的数据结构,没有直观的联系.随着程序规模的增加,程序 ...

  2. 使用软件模拟spi 时序时注意点

    软件模拟 spi 时序有以下几个点需要注意: cs 使能后到第一个 sck 边沿需要延时. 最后一个sck 边沿到下一个 cs 需要延时. sck 的高电平和低电平本身需要维持时间. mosi 需要先 ...

  3. dubbo小教程

    dubbo小教程 先给出阿里巴巴dubbo的主页:http://code.alibabatech.com/wiki/display/dubbo/Home-zh 自己的demo下载地址:http://d ...

  4. Spring学习(三)——@PropertySource,@ImportResource,@Bean注解

    @PropertySource注解是将配置文件中 的值赋值给POJO 项目结构如下 一.创建一个Person.Java文件: import org.springframework.boot.conte ...

  5. XML--XSL

    参考 http://blog.51cto.com/cnn237111/1345998 https://www.w3.org/TR/2017/REC-xslt-30-20170608/ 声明 把文档声明 ...

  6. mysql字符类型总结及常用字符函数

    常用字符串函数: concat(s1,s2,s3..)       连接s1,s2,...sn为一个字符串 INSERT(str,x,y,instr)将字符串str从x位置开始,y个字符串替换为字符串 ...

  7. [C/C++]编程规范一:头文件篇

    一般来说,每一个.cc或者.cpp文件对应一个头文件(.h文件),当然,也有例外,例如一些测试单元或者main文件,头文件的一些规范可以令代码可读性.程序的性能等大为改观,所以还是要注意头文件的规范问 ...

  8. 使用connected-react-router使router与store同步

    connected-react-router是一个绑定react-router到redux的组件,来实现双向绑定router的数据到redux store中,这么做的好处就是让应用更Redux化,可以 ...

  9. nodejs(13)模块加载机制

    模块加载机制 优先从缓存中加载 当一个模块初次被 require 的时候,会执行模块中的代码,当第二次加载相同模块的时候,会优先从缓存中查找,看有没有这样的一个模块! 好处:提高模块的加载速度:不需要 ...

  10. find: paths must precede expression

    郁闷了今天进行如下的查询居然报告错误, [root@localhost /]# find /root/ -name *.txtfind: paths must precede expressionUs ...