由摩根定律引发的思考

Linux中,我们常常需要对一些条件进行判断,而对于多个条件的组合判断是基于摩根定律而进行的。所以理解摩根定律对于我们学习条件判断是很有必要的,下面我们就先介绍摩根定律进而引出其在一些具体场景上的应用。

 

一、摩根定律

Linux中的条件判断中,摩根定律可以以下式来表示:

!( A || B )=!A && !B

!( A && B )=!A || !B

       为了方便理解,我们以下面的图例来进行分析:

摩根定律.png

如上图,我们先来看一下摩根定律等式两边在图中的颜色范围:

!(A || B):我们知道,A || B在图中的颜色范围为黄++绿三种颜色的范围,所以!(A || B)的取值范围就是图中灰色范围;

!A && !B:我们可以看出,!A在图中的颜色范围为灰+绿两种颜色,!B在图中的颜色范围为灰+黄,两者取交集,即为灰色

!(A && B):可以看出,A && B在图中的颜色范围为红色,那么!(A && B)在图中就表示除红色外的所有部分,即++绿三种颜色范围;

!A || !B:我们知道,!A在图中的颜色范围为除黄+红外的所有范围,即灰+绿;!B在图中的颜色范围为除绿+红之外的所有范围,即灰+黄;那么对于!A || !B,取!A!B的并集,即++绿三种颜色范围;

综上,我们对于摩根定律中的两个等式应该能够彻底理解了。

 

二、摩根定律的应用

了解了摩根定律,下面我们来看摩根定律在一些场景下的应用。

Ø  编写一个脚本,当用户给出一个文件时,判断当前用户对此文件是否不可读且不可写;

摩根定律1.PNG

由上图我们可以看到,当我们使用[ ! –r $file –a ! –w $file ]! [ -r $file –o –w $file ]进行判断时,其判断结果相同,即符合摩根定律!( A || B )=!A && !B

Ø  查找系统中没有属主或没有属组的文件

摩根定律2.PNG

由上图我们可以看到,当我们使用-not –user root –o –not –group root-not \( -user root –a –group root \)进行查找时,其结果相同,即符合摩根定律!( A && B )=!A || !B

原创文章,作者:luoliumeng,如若转载,请注明出处:http://www.178linux.com/36002

(0)
luoliumengluoliumeng
上一篇 2016-08-16
下一篇 2016-08-16

相关推荐

  • LVS-NAT+LVS-NAT基于NFS做wordpress负载均衡实验

    Lvs-nat实验 实验设备:三台centos虚拟机 Director:DIP:10.0.0.254  VIP:192.168.208.129 RS1:RIP:10.0.0.1 RS2:RIP:10.0.0.2   首先都安装ipvsadm、telnet、httpd   配置网卡:RS2:hostonly模式:10.0.0.2/24 配置…

    2017-11-21
  • bash脚本之数组及字符串切片,登陆配置文件

    一,概述 数组(就是一堆变量的集合) 变量:存储单个元素的内存空间 数组:存储多个元素的连续的内存空间,相当于多个变量的集合/ 数组名和索引     索引:编号从0开始,属于数值索引     注意:索引可支持使用自定义的格式,而不仅是数值格式,即为关联索引,bash4.0版本之后…

    Linux干货 2016-09-01
  • LVS调度方法

    lvs scheduler:     根据其调度时是否考虑后端主机的当前负载,可分为静态方法和动态方法     静态方法:仅根据算法本身进行调度:         RR:Round Ronin 轮询         WRR:Weighted…

    Linux干货 2017-01-10
  • sed命令的入门与进阶

    sed:Stream EDitor     什么是sed呢?sed被称为linux文本处理三剑客之一,另外两个就是大名鼎鼎的grep和awk。sed是非交互性的流编辑器,在处理文本时一次只读取一行文本,然后基于所给定的编辑脚本对模式空间中的内容做编辑处理并把处理后的结果输出至标准输出。接着处理下一行文本,这样不断重复,直到文件的末尾。se…

    2017-03-16
  • 10 文本处理のsed狗带

    sed 介绍 工作原理 语法 参数选项:-n, -e, -r, -f, -i 地址定界 编辑命令 查找替换 空间操作 练习 参考文档 sed介绍 sed是一个(stream editor)。         1) :使用sed只能在命令行下输入编辑命令来编辑文…

    Linux干货 2016-08-12
  • 初学第一篇

    本菜鸡出现了。。。 第一次接触Linux,相对老司机要差远了,这几个月的辣眼睛,我就承包了,希望越来越好~~~ ————我是分割线,下面是正文————- 都是讲过的东西,不过里面内容都是11手打,作业也自己做后再比对答案 一、–第一天的课程暂时不写了,…

    Linux干货 2017-09-02

评论列表(1条)

  • 马哥教育
    马哥教育 2016-08-19 08:48

    摩根定律是我们理解查找关系中的与或非是至关重要的,摩根定律只是find命令的一部分,对我们理解-/perm选项来说是很重要的,只有理清了find摩根定律,我们才能深刻理解权限查找中的与或非。