在写程序时,会用到条件判断,测试条件是否成立。很多时候,判断条件是多个的,这个时候需要用到逻辑操作符。shell脚本中常用的有哪些逻辑操作符呢?

1、逻辑与: -a

格式: conditon1 -a condition2

结果:codition1和conditon2 都为真,才返回真,否则返回假。

演示:测试可执行文件lnmp

  1. [root@localhost ~]# [ -x lnmp -a -f lnmp ]   #lmmp是可执行且是文件 结果返回真
  2. [root@localhost ~]# echo $?
  3. 0
  4. [root@localhost ~]# [ -x lnmp -a -d lnmp ]   #lnmp可执行但不是目录 结果返回假
  5. [root@localhost ~]# echo $?
  6. 1

拓展:该操作符类似于其他语言的&& ,a 是and 的第一个字母

2、逻辑或:-o

格式: condition1 -o conditon2

结果:condition1和condition2中,有一个条件为真,即返回真,否则返回假

演示:测试可执行文件lnmp

  1. [root@localhost ~]# [ -x lnmp -o -d lnmp ]  #lmmp是可执行但不是目录 结果仍返回真
  2. [root@localhost ~]# echo $?
  3. 0
  4. [root@localhost ~]# [ -L lnmp -o -d lnmp ]   #lnmp可执行文件,但不是目录,也不是符号链接文件, 结果返回假
  5. [root@localhost ~]# echo $?
  6. 1

拓展:该操作类似于其他语言的||

提醒:-o 是单词or 的第一个字母o,而不是数字0

3、逻辑非:!

格式:! condition

结果:返回条件测试condition结果的相反值

演示:测试可执行文件lnmp

  1. [root@localhost ~]# [ ! -x lnmp ] #lnmp 是可执行文件,返回假
  2. [root@localhost ~]# echo $?
  3. 1
  4. [root@localhost ~]# [ ! -d lnmp ] #lnmp 不是目录,返回真
  5. [root@localhost ~]# echo $?
  6. 0

Linux Shell脚本逻辑操作符简介的更多相关文章

  1. Linux shell脚本编程(一)

    Linux shell脚本编程: 守护进程,服务进程:启动?开机时自动启动: 交互式进程:shell应用程序 广义:GUI,CLI GUI: CLI: 词法分析:命令,选项,参数 内建命令: 外部命令 ...

  2. 【学习】Linux Shell脚本编程

    1.脚本的组成和执行 Linux shell脚本的结构并不复杂,其主要由变量.内部命令以及shell的语法结构和一些函数.其他命令行的程序等组成,以下是一个简单的shell脚本. #!/bin/bas ...

  3. Linux shell脚本编程(二)

    Linux shell脚本编程(二) 练习:求100以内所有偶数之和; 使用至少三种方法实现; 示例1: #!/bin/bash # declare -i sum=0 #声明一个变量求和,初始值为0 ...

  4. Linux Shell脚本攻略 读书笔记

    Linux Shell脚本攻略 读书笔记 这是一本小书,总共253页,但内容却很丰富,书中的示例小巧而实用,对我这样总是在shell门前徘徊的人来说真是如获至宝:最有价值的当属文本处理,对这块我单独整 ...

  5. linux shell 脚本攻略学习20--awk命令入门详解

    awk生于1977年,创始人有三个,分别为 Alfred Aho,Peter Weinberger, 和 Brian Kernighan,名称源于三个创始人的姓的首字母. 作用:处理文本文件. awk ...

  6. Linux shell脚本基础学习详细介绍(完整版)一

    Linux shell脚本基础学习这里我们先来第一讲,介绍shell的语法基础,开头.注释.变量和 环境变量,向大家做一个基础的介绍,虽然不涉及具体东西,但是打好基础是以后学习轻松地前提.1. Lin ...

  7. Linux shell脚本编程(三)

    Linux shell脚本编程 流程控制: 循环语句:for,while,until while循环: while CONDITION; do 循环体 done 进入条件:当CONDITION为“真” ...

  8. Linux Shell 脚本入门

    linux shell 脚本格式 #!/bin/sh#..... (注释)命令...命令... 使用vi 创建完成之后需设置权限 chmod +x filename.sh 执行命令: ./filena ...

  9. Linux Shell脚本入门--cut命令

    Linux Shell脚本入门--cut命令 cut cut 命令可以从一个文本文件或者文本流中提取文本列. cut语法 [root@www ~]# cut -d'分隔字符' -f fields &l ...

随机推荐

  1. Entity Framework 6 Recipes 2nd Edition(13-10)译 -> 显式创建代理

    问题 你有一个POCO实体,原本在执行一个查询时动态创建代理,现在你不想EF延迟创建代理带来的代价. 解决方案 假设你有一个如图Figure13-15的模型 Figure 13-15. A model ...

  2. golang的安装

    整理了一下,网上关于golang的安装有三种方式(注明一下,我的环境为CentOS-6.x, 64bit) 方式一:yum安装(最简单) rpm -Uvh http://dl.fedoraprojec ...

  3. xamarin开发UWP元素的初始化设置顺序

    在开发xamarin的UWP平台不可避免的遇到一下坑,现记录下来,希望对后面踩坑有帮助. 一.listview的分组问题:当我们使用listview的IsGroupingEnabled=true时,如 ...

  4. [原创]关于ORACLE的使用入门

    Oracle===============================数据库:Oracle------>甲骨文(Oracle) 49+%DB2---------->IBM 49+%Sq ...

  5. BootStrap_03之组件(手风琴、导航)

    1.BootStrap组件--按钮组: .btn-group>.btn*5: .btn-group-justified: .btn-group-lg/sm/xs: .btn-group-vert ...

  6. ASP.NET MVC5+EF6+EasyUI 后台管理系统(44)-工作流设计-设计表单

    系列目录 设计表单是比较复杂的一步,完成一个表单的设计其实很漫长,主要分为四步. 开始之前先说说表的结构. 其实表Flow_Form与Flow_FormContent设计是有一个缺陷的.我总共是设置最 ...

  7. 从零开始编写自己的C#框架(22)——添加普通列表页面

    普通列表页面指的是上一章那种有层次感列表以外的正常列表页面,由于上一章已讲解了正常添加页面的相关操作了,所以部分相关的操作本章节就不再罗嗦重复一次了.大家可以试试先用本章内容中的一些简单介绍,自己使用 ...

  8. 从零开始编写自己的C#框架(21)——添加分类类型页面

    页面权限与页面控件权限经过简单的调试后,终于启用起来了,以后大家添加新页面时,就必须按照本章介绍的方法,将你新增的页面注册到系统中,这样才能访问与进行相关操作. 下面讲讲如何创建一个分类类型的页面. ...

  9. CentOS7安装iptables防火墙

    CentOS7默认的防火墙不是iptables,而是firewalle. 安装iptable iptable-service #先检查是否安装了iptables service iptables st ...

  10. AFNetworking 3.0 源码解读(三)之 AFURLRequestSerialization

    这篇就讲到了跟请求相关的类了 关于AFNetworking 3.0 源码解读 的文章篇幅都会很长,因为不仅仅要把代码进行详细的的解释,还会大概讲解和代码相关的知识点. 上半篇: URI编码的知识 关于 ...