条件表达式返回的结果都为布尔型

  真为1,假为0

条件测试的表达式

  [expression]

比较符

  整数比较

  -eq:比较两个整数是否相等,$A -eq $B

  -ne:测试两个整数是否不等,不等则为真,等则为假

  -gt:大于为真,小于为假

  -lt:小于为真,大于为假

  -ge:大于或者等于

  -le:小于或者等于

  

  -e  File  测试文件是否存在

  -f  File  测试文件是否是普通文件

  -d  File 测试指定路径是否是目录

  -r  File 测试文件是否有写的权限

  -w  File 测试文件是否有写的权限

  -x  File测试文件是否有执行的权限

  -z:判断指定的变量是否存在值

  -n:测试字符是否为空 非空为真(0)

  -s:文件的大小非0时为真

  !:逻辑非

 双目:

  == 相等为真

  != 不等为真

  >  大于为真

  <  小于为真

  -a:逻辑与   都为真才为真

  -o:逻辑或  一个为真就为真

test expression  

  expression为条件表达式

  if test  (表达式为真) 
  if test !表达式为假 
  test 表达式1 –a 表达式2                  两个表达式都为真 
  test 表达式1 –o 表达式2                 两个表达式有一个为真

摩根定律

  !(A  -a  B)= !A  -o  !B

  !(A  -o  B)= !A  -a  !B

逻辑符

 &&:逻辑与,都为真则为真

  如果第一个条件是真的,需要对第二个条件进行判断

  如果第一个条件是假的,不需要对第二个条件进行判断,结果已经确定为假。

 ||:逻辑或,一个为真则为真

  当第一个条件为真的时候,不在去判断第二条件,因为第一个表达式已经决定了整个表达式为真

  只有当第一个表达式为假的时候才回去判断第二个表达式

操作实例:

  创建两个文件,一个是普通文件类型,另一个是文件目录

     

  执行条件表达式

     

  定义一个变量,将文件赋值给变量,然后通过条件表达式判断该文件是否存在 (补充: 使用变量的时候最好是加上双引号 " ")

    

  

  编辑脚本

    

  如果执行shell脚本时,后面跟着的参数的值  为 3  才能输出3个1,其他则不输出

    

  在修改脚本,将&& 连接符号改成 ||

   

  执行脚本    当只有前面的条件不成立,后面的条件才执行

   

  下面图中的语句  [ -f /etc/host ] && { echo 1; echo 2; echo3 ;}

      

  与之相等价的语句是

    if  [ 条件 ]

    then  

      执行的命令

      命令

    fi

    这条语句就是条件不成立时候执行的   [ -d /etc/hosts ] || { echo 1;echo 2;echo 3;}

      

    

【Linux_Shell 脚本编程学习笔记一、条件表达式】的更多相关文章

  1. 【Linux_Shell 脚本编程学习笔记三、分支与循环结构】

    if 语句是实际生产工作中最重要且最常用的语句,所以,必须掌握牢固 if 条件语法 1. 单分支机构 if  [ 条件 ] then 指令 fi 或 if  [  条件 ]; then 指令 fi   ...

  2. 【Linux_Shell 脚本编程学习笔记六、shell的数值运算】

    1.bc 命令的用法(可以整数也可以小数): bc是 UNIX下的计算器,它也可以用在命令行下面: 例: 给自变量 i 加 1 [root@docker Demo_test]# i= [root@do ...

  3. 【Linux_Shell 脚本编程学习笔记四、监控系统内存并报警企业案例脚本】

    前置知识:awk 参考学习博客:https://www.cnblogs.com/bugingcode/p/8287914.html awk 'BEGIN{ commands } pattern{ co ...

  4. 【Linux_Shell 脚本编程学习笔记五、Oracle JDK1.8 安装shell 脚本】

    脚本使用说明: 首先在脚本的同级目录下有个 jdk的安装包 脚本和安装包必须在同级目录下才能够安装(脚本没有优化,还可以使用  wget  从网上下载指定版本的  jdk 安装包) #!/bin/sh ...

  5. 【Linux_Shell 脚本编程学习笔记二、打印菜单】

    综合实例: 打印选择菜单,一键安装Web服务 [root@zuoyan   script]# sh menu.sh 1.[install  lamp] 2. [install lnmp] 3. [ex ...

  6. Bash脚本编程学习笔记06:条件结构体

    简介 在bash脚本编程中,条件结构体使用if语句和case语句两种句式. if语句 单分支if语句 if TEST; then CMD fi TEST:条件判断,多数情况下可使用test命令来实现, ...

  7. Bash脚本编程学习笔记08:函数

    官方资料:Shell Functions (Bash Reference Manual) 简介 正如我们在<Bash脚本编程学习笔记06:条件结构体>中最后所说的,我们应该把一些可能反复执 ...

  8. Bash脚本编程学习笔记07:循环结构体

    本篇中涉及到算术运算,使用了$[]这种我未在官方手册中见到的用法,但是确实可用的,在此前的博文<Bash脚本编程学习笔记03:算术运算>中我有说明不要使用,不过自己忘记了.大家还是尽量使用 ...

  9. Dart学习笔记-运算符-条件表达式-类型转换

    Dart学习笔记-运算符-条件表达式-类型转换 一.运算符 1.算术运算符 + (加)- (减)* (乘)/ (除)~/ (取整) %(取余) 2.关系运算符 == (等等) != (不等) > ...

随机推荐

  1. CSS 之pseudo-classes 与pseudo-element的异同

    从W3School找到相关资料如下: 伪类: 伪类存在的意义是为了通过选择器找到那些不存在与DOM树中的信息以及不能被常规CSS选择器获取到的信息. 伪类由一个冒号:开头,冒号后面是伪类的名称和包含在 ...

  2. Elastic ik插件配置热更新功能

    ik github地址:https://github.com/medcl/elasticsearch-analysis-ik 官网说明: 热更新 IK 分词使用方法 目前该插件支持热更新 IK 分词, ...

  3. UVA 125 统计路径条数 FLOYD

    这道题目折腾了我一个下午,本来我的初步打算是用SPFA(),进行搜索,枚举出发点,看看能到达某个点多少次,就是出发点到该点的路径数,如果出现环,则置为-1,关键在于这个判环过程,如果简单只找到某个点是 ...

  4. 吴裕雄--天生自然 JAVA开发学习:Character 类

    char ch = 'a'; // Unicode 字符表示形式 char uniChar = '\u039A'; // 字符数组 char[] charArray ={ 'a', 'b', 'c', ...

  5. python语法基础-并发编程-进程-其他

    ###############    多进程的信号量    ############## # 多进程的信号量 from multiprocessing import Process import ti ...

  6. JVM--走进Java

    1.1 概述 1) Java 能获得如此广泛的认可,除了他拥有一门结构严谨,面向对象的编程语言之外,还有许多不可忽视的有点:Java 摆脱了硬件平台的束缚,实现了“一次编写,到处运行”的理想:他提供了 ...

  7. JavaScript学习笔记 - 入门篇(3)- DOM操作

    认识DOM 文档对象模型DOM(Document Object Model)定义访问和处理HTML文档的标准方法.DOM 将HTML文档呈现为带有元素.属性和文本的树结构(节点树). 先来看看下面代码 ...

  8. mysql Communications link failure Last packet sent to the server was X ms ago

    想必大家在用MySQL时都会遇到连接超时的问题,如下图所示: 就是这个异常(com.mysql.jdbc.exceptions.jdbc4.Communication***ception:Commun ...

  9. HTTP知识整理

    HTTP协议 HTTP协议的主要特点可概括如下: 1.支持客户/服务器模式. 2.简单快速:客户向服务器请求服务时,只需传送请求方法和路径.请求方法常用的有GET.HEAD.POST.每种方法规定了客 ...

  10. CodeForces 995B Suit and Tie(贪心,暴力)

    https://codeforces.com/problemset/problem/995/B 题意: 就是通过每次移动相邻的两位数,来使数值相同的数挨在一起,求最少要移动多少次. 思路: 直接从前往 ...