一、常规的布尔运算

常规的布尔运算符有:!、&&、||

使用语法

! exp

exp &&  exp

exp || exp

[[ n op m && a op b]]

...

exp为[ n op m ]或test n op m或true或false

二、条件测试的布尔运算

条件测试的布尔运算有:!、-o、-a

a = 10

b=20

运算符 说明 举例
! 非运算,表达式为 true 则返回 false,否则返回 true。 [ ! false ] 或test ! false返回 true。
-o 或运算,有一个表达式为 true 则返回 true。 [ $a -lt 20 -o $b -gt 100 ] 或test $a -lt 20 -o $b -gt 100返回 true。
-a 与运算,两个表达式都为 true 才返回 true。 [ $a -lt 20 -a $b -gt 100 ]或test $a -lt 20 -a $b -gt 100返回 false。

三、实例

#!/bin/bash
a=10
b=20
echo -e "\n----true/false----"
if ! false
thenecho "!false:true"
fi
if true || false
thenecho "true||false:true"
fi
if true && false
thenecho "true&&false:true"
elseecho "true&&false:false"
fiecho -e "\n---- ! && || [] ----"
if ! [ $a -eq $b ]
thenecho "![$a 等于 $b]:true"elseecho "![$a 等于 $b]:false"
fi
if [ $a -eq $b ] && [ $a -ne $b ]
thenecho "[$a 等于 $b]&&[$a 不等于 $b]:true"elseecho "[$a 等于 $b]&&[$a 不等于 $b]:false"
fi
if [ $a -eq $b ] || [ $a -ne $b ]
thenecho "[$a 等于 $b]||[$a 不等于 $b]:true"elseecho "[$a 等于 $b]||[$a 不等于 $b]:false"
fiecho -e "\n---- ! && || test ----"
if ! test $a -eq $b
thenecho "! test $a 等于 $b:true"elseecho "! test $a 等于 $b:false"
fi
if test $a -eq $b  && test $a -ne $b
thenecho "test $a 等于 $b && test $a 不等于 $b:true"elseecho "test $a 等于 $b && test $a 不等于 $b:false"
fi
if test $a -eq $b || test $a -ne $b
thenecho "test $a 等于 $b || test $a 不等于 $b:true"elseecho "test $a 等于 $b || test $a 不等于 $b:false"
fiecho -e "\n----  [[  && || ]] ----"
if [[ $a -eq $b  &&  $a -ne $b ]]
thenecho "[[$a 等于 $b && $a 不等于 $b]]:true"elseecho "[[$a 等于 $b && $a 不等于 $b]]:false"
fi
if [[ $a -eq $b  ||  $a -ne $b ]]
thenecho "[[$a 等于 $b || $a 不等于 $b]]:true"elseecho "[[$a 等于 $b || $a 不等于 $b]]:false"
fiecho -e "\n---- [ ! -a -o ] ----"
if [ ! $a -ne $b ]
thenecho "[!$a 不等于 $b]:true"elseecho "[!$a 不等于 $b]:false"
fi
if [ $a -gt $b -o $a -lt $b ]
thenecho "[$a 大于 $b -o $a 小于 $b]:true"elseecho "[$a 大于 $b -o $a 小于 $b]:false"
fi
if [ $a -lt $b -a  $a -gt $b ]
thenecho "[$a 小于 $b -a $a 大于 $b]:true"elseecho "[$a 小于 $b  -a $a 大于 $b]:false"
fi

Shell入门(八)之布尔运算相关推荐

  1. python文件路径过滤器_SUMO入门(八) - 从Python引入TraCI接口

    SUMO入门(八) - 从Python引入TraCI接口 TraCI TraCI/Interfacing TraCI from Python TraCI命令分为13个部分,它们对应于各个模块: gui ...

  2. shell入门学习笔记-12-命令详解: echo与printf

    系列目录与参考文献传送门: shell入门学习笔记-序章 命令详解 admindeMacBook-Pro:myshell admin$ type cd cd is a shell builtin ad ...

  3. 脑残式网络编程入门(八):你真的了解127.0.0.1和0.0.0.0的区别?

    本文由"小姐姐养的狗"原创发布于"小姐姐味道"公众号,原题<127.0.0.1和0.0.0.0地址的区别>,收录时有优化和改动.感谢原作者的分享. ...

  4. shell入门学习笔记-15-命令详解: 三剑客之一awk-分支语句、数组

    系列目录与参考文献传送门: shell入门学习笔记-序章 awk分支控制 if admindeMacBook-Pro:~ admin$ seq 5 |awk '{if($0%2) print $0}' ...

  5. SUMO入门(八) - TraCI

    SUMO入门(八) - TraCI TraCI TraCI/Interfacing TraCI from Python TraCI 是 "Traffic Control Interface& ...

  6. linux常见命令以及shell入门编程(笔记总结记录)

    linux常见命令以及shell入门编程(笔记总结记录) 文章目录 linux常见命令以及shell入门编程(笔记总结记录) 一.linux常见命令 1.不常用 2.常用 3.数据查找处理相关 1.g ...

  7. CSS入门八、CSS3动画

    零.文章目录 文章地址 个人博客-CSDN地址:https://blog.csdn.net/liyou123456789 个人博客-GiteePages:https://bluecusliyou.gi ...

  8. 网络编程懒人入门(八):手把手教你写基于TCP的Socket长连接

    转自即时通讯网:http://www.52im.net/ 本文原作者:"水晶虾饺",原文由"玉刚说"写作平台提供写作赞助,原文版权归"玉刚说" ...

  9. Shell入门(六)之Shell pipe(管道)

    Shell入门(六)之Shell pipe(管道) Shell pipe(管道)命令 pipe(管道)命令使用|界定符号. pipe管道命令|,仅能处理经由前面一个指令传来的信息,也就是标准输出(st ...

  10. java游戏开发入门(八) -图像

    java游戏开发入门(八) - 图像 前言 图片资源 首先我们来改造一下我们的Player实体 方法说明 效果展示 完整项目 前言   前面那么多基本上一个游戏需要的逻辑就差不多了,但是看上去还非常丑 ...

最新文章

  1. 对于STM32F103控制的三轴机械臂基本功能测试-关节转动控制
  2. 参加Google™ Code Jam - 中国编程挑战赛(2)
  3. VBS常用函数及功能
  4. NAB 2019见闻:CAE视频编码与QoE
  5. python利用特征进行可视化样本显示_利用Python进行机器学习之特征选择
  6. php div行内块元素,行内元素与块级元素的区别详细介绍
  7. 使用 jQuery Mobile 与 HTML5 开发 Web App (十四) —— jQuery Mobile 方法下
  8. C#从数据库导出数据到CSV
  9. QT5开发及实例学习之十六Qt5基础图形的绘制
  10. ONVIF流媒体播放流程
  11. 拼写检查器——朴素贝叶斯应用
  12. 花样机模板电脑CAD免费打板转格式软件PS300B使用步骤教程:日本兄弟牌Brother花样机通用CAD画图打板.dxf文件转.emb文件
  13. Fine-grained prosody modeling in neural speech synthesis using ToBI representation
  14. 阴阳师服务器维护结界卡暂停吗,阴阳师3月17日更新维护公告 全部更新内容汇总...
  15. 九度[1029]-魔咒词典
  16. 【HDR学习】苹果EDR技术洞察(二)
  17. jquery添加样式
  18. 推荐系统4--AutoRec与Deep Crossing(改变神经网络的复杂程度)
  19. 不用在PLC内编程,实现西门子与罗克韦尔(AB)PLC之间数据通讯
  20. sd卡计算机接口,sd卡怎么插电脑上

热门文章

  1. [蓝桥杯2015决赛]五星填数-枚举+数论
  2. ImportError: libicui18n.so.56 and/or libicui18n.so.58 when importing cv2
  3. Deeplab训练时候unexpected label
  4. F. Cheap Robot(kruskal 重构树)
  5. hdu 6962 I love tree 线段树维护二次函数
  6. Codeforces Round #691 (Div. 2)
  7. 牛客题霸 [斐波那契数列] C++题解/答
  8. 2020牛客国庆集训派对day4 Digits Are Not Just Characters
  9. YBTOJ:斐波拉契(矩阵快速幂)
  10. Loj#114-k大异或和【线性基】