(一)条件判断 if 中-z 到 -d 的意思

  [ -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存在且是一个管道,则为真。

  [ -r file ] 若file存在且是可读的,则为真。

  [ -s file ] 若file存在且大小不为0,则为真。

  [ -t FD ] 若文件描述符FD打开且指向一个终端,则为真。

  [ -u file ] 若file存在且设置了SUID,则为真。

  [ -w file ] 若file存在且是可写的,则为真。

  [ -x file ] 若file存在且是可执行的,则为真。

  [ -O file ] 若file存在且是有效用户ID,则为真。

  [ -G file ] 若file存在且是有效用户组,则为真。

  [ -L file ] 若file存在且是一个符号连接,则为真。

  [ -S file ] 若file存在且是一个套接字,则为真。

(二)条件测试

  使用 “test” 或 “[ ]” 命令:

  if test -f file.c

  then ...

  fi

  或者:

  if [ -f file.c ]

  then ...

  fi

  注意:在使用方括号”[]”来测试条件时,方括号要与测试条件之间留出空格。

  

  测试条件分类:

    字符串比较类\算术比较类\与文件相关的条件测试类

  1.字符串比较类:

  string1 = string2 如果两字符串相同,则结果为真

  string1 != string2 如果两字符串不相同,则结果为真

  -n string 如果字符串不是空,则结果为真

  -z string 如果字符串是空,则结果为真

  注意在比较相等或不等的时侯,=/!=的两边要与比较的两字符串要有空格符相隔开

  2.算术比较类:

expression1 –eq expression2 #如果两个表达式相等,则结果为真
expression1 –ne expression2 #如果两个表达式不等,则结果为真
expression1 –gt expression2 #如果前一个表达式大于后一个表达式,则结果为真
expression1 –ge expression2 #如果前一个表达式大于或等于后一个表达式,则结果为真
expression1 –lt expression2 #如果前一个表达式小于后一个表达式,则结果为真
expression1 –le expression2 #如果前一个表达式小于或等于后一个表达式,则结果为真
! expression #取表达式的非,即表达式为假,则结果为真   3.文件比较类:

[ FILE1 -nt FILE2 ] 如果 FILE2 比 FILE1 要老, or 如果 FILE1 exists and FILE2 does not则为真。

[ FILE1 -ot FILE2 ] 如果 FILE1 比 FILE2 要老, 或者 FILE2 存在且 FILE1 不存在则为真。

[ FILE1 -ef FILE2 ] 如果 FILE1 和 FILE2 指向相同的设备和节点号则为真。

 

  

  

shell中的条件判断if和测试的更多相关文章

  1. shell中的条件判断以及与python中的对比

    shell中比如比较字符串.判断文件是否存在及是否可读等,通常用"[]"来表示条件测试. 注意:这里的空格很重要.要确保方括号的空格. if ....; then          ...

  2. linux shell中的条件判断语句

    http://bbs.chinaunix.net/thread-396805-1-1.html shell 判断语句 流程控制 "if" 表达式 如果条件为真则执行then后面的部 ...

  3. shell中的条件判断、参数以及变量替换

    文章转自: http://www.cnblogs.com/maxupeng/archive/2011/07/02/2096551.html 一.test命令 test命令是shell内部命令,它计算作 ...

  4. shell中的条件判断

    read命令 命令的语法: read [参数] 变量名 常用的参数如下: -t timeout 设定超时时间. -p prompt 设定提示信息,该提示信息将会显在光标前. 条件测试: 条件测试可以判 ...

  5. Shell编程中的条件判断(条件测试)

    Shell中的条件判断(测试)类型: 1) 整数测试 2) 字符测试 3) 文件测试 条件测试的表达式:        (注: expression 与 [] 之间空格不能省略) [ expressi ...

  6. Linux centosVMware 自动化运维Ansible介绍、Ansible安装、远程执行命令、拷贝文件或者目录、远程执行脚本、管理任务计划、安装rpm包/管理服务、 playbook的使用、 playbook中的循环、 playbook中的条件判断、 playbook中的handlers、playbook实战-nginx安装、管理配置文件

    一.Ansible介绍 不需要安装客户端,通过sshd去通信 基于模块工作,模块可以由任何语言开发 不仅支持命令行使用模块,也支持编写yaml格式的playbook,易于编写和阅读 安装十分简单,ce ...

  7. Shell学习(六)——条件判断总结

    Shell学习(六)--条件判断总结 [1]https://www.cnblogs.com/zhw-626/p/8528001.html [2]https://www.cnblogs.com/yizh ...

  8. Shell脚本IF条件判断和判断条件总结

    转自:http://m.jb51.net/article/56553.htm 这篇文章主要介绍了Shell脚本IF条件判断和判断条件总结,本文先是给出了IF条件判断的语法,然后给出了常用的判断条件总结 ...

  9. sql 语句中使用条件判断case then else end

    sql 语句中使用条件判断case then else end范例: SELECT les.[nLessonNo] FROM BS_Lesson AS les WHERE les.[sClassCod ...

随机推荐

  1. 给你灵感!21个精美的 iOS APP 网站设计欣赏

    iOS 吹起了轰轰烈烈的扁平化设计风格,而做为承载 App 宣传重任的网页,整体设计风格的变迁如何?是否也如iOS的设计风格改革一样彻底的翻转?还是如往常一直深耕成熟的设计风格? Spendee Fo ...

  2. Js冒泡事件详解及阻止

    Js冒泡机制是指如果某元素定义了事件A,如click事件,如果触发了事件之后,没有阻止冒泡事件,那么事件将向父级元素传播,触发父类的click函数. 如下例所示: <html>     & ...

  3. bzoj3524/2223 [Poi2014]Couriers

    传送门:http://www.lydsy.com/JudgeOnline/problem.php?id=3524 http://www.lydsy.com/JudgeOnline/problem.ph ...

  4. 48、面向对象中super的作用?

    什么是super? super() 函数是用于调用父类(超类)的一个方法. super 是用来解决多重继承问题的,直接用类名调用父类方法在使用单继承的时候没问题,但是如果使用多继承,会涉及到查找顺序( ...

  5. Master of Phi (欧拉函数 + 积性函数的性质 + 狄利克雷卷积)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6265 题目大意:首先T是测试组数,n代表当前这个数的因子的种类,然后接下来的p和q,代表当前这个数的因 ...

  6. Struts结果跳转方式(四种result配置)

    1.转发(默认转发)

  7. Linux进程调度原理【转】

    转自:http://www.cnblogs.com/zhaoyl/archive/2012/09/04/2671156.html Linux进程调度的目标 1.高效性:高效意味着在相同的时间下要完成更 ...

  8. USB基础介绍

    (转)USB (Universal Serial Bus) 全文地址:http://vlewang.blog.163.com/blog/static/105878151201032804347546/ ...

  9. USB各种模式 解释

    1.MTP: 通过MTP这种技术,可以把音乐传到手机里.有了U盘功能为什么还要多此一举呢?因为版权问题,MTP可以把权限文件从电脑上导过去:如果只使用手机的U盘功能,把歌的文件拷过去之后,没有权限文件 ...

  10. 64_r3

    rubygem-resque-cleaner-0.3.0-5.fc24.noarch.rpm 24-Sep-2016 22:26 22422 rubygem-resque-cleaner-doc-0. ...