Shell入门(八)之布尔运算
一、常规的布尔运算
常规的布尔运算符有:!、&&、||
使用语法
! 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入门(八)之布尔运算相关推荐
- python文件路径过滤器_SUMO入门(八) - 从Python引入TraCI接口
SUMO入门(八) - 从Python引入TraCI接口 TraCI TraCI/Interfacing TraCI from Python TraCI命令分为13个部分,它们对应于各个模块: gui ...
- shell入门学习笔记-12-命令详解: echo与printf
系列目录与参考文献传送门: shell入门学习笔记-序章 命令详解 admindeMacBook-Pro:myshell admin$ type cd cd is a shell builtin ad ...
- 脑残式网络编程入门(八):你真的了解127.0.0.1和0.0.0.0的区别?
本文由"小姐姐养的狗"原创发布于"小姐姐味道"公众号,原题<127.0.0.1和0.0.0.0地址的区别>,收录时有优化和改动.感谢原作者的分享. ...
- shell入门学习笔记-15-命令详解: 三剑客之一awk-分支语句、数组
系列目录与参考文献传送门: shell入门学习笔记-序章 awk分支控制 if admindeMacBook-Pro:~ admin$ seq 5 |awk '{if($0%2) print $0}' ...
- SUMO入门(八) - TraCI
SUMO入门(八) - TraCI TraCI TraCI/Interfacing TraCI from Python TraCI 是 "Traffic Control Interface& ...
- linux常见命令以及shell入门编程(笔记总结记录)
linux常见命令以及shell入门编程(笔记总结记录) 文章目录 linux常见命令以及shell入门编程(笔记总结记录) 一.linux常见命令 1.不常用 2.常用 3.数据查找处理相关 1.g ...
- CSS入门八、CSS3动画
零.文章目录 文章地址 个人博客-CSDN地址:https://blog.csdn.net/liyou123456789 个人博客-GiteePages:https://bluecusliyou.gi ...
- 网络编程懒人入门(八):手把手教你写基于TCP的Socket长连接
转自即时通讯网:http://www.52im.net/ 本文原作者:"水晶虾饺",原文由"玉刚说"写作平台提供写作赞助,原文版权归"玉刚说" ...
- Shell入门(六)之Shell pipe(管道)
Shell入门(六)之Shell pipe(管道) Shell pipe(管道)命令 pipe(管道)命令使用|界定符号. pipe管道命令|,仅能处理经由前面一个指令传来的信息,也就是标准输出(st ...
- java游戏开发入门(八) -图像
java游戏开发入门(八) - 图像 前言 图片资源 首先我们来改造一下我们的Player实体 方法说明 效果展示 完整项目 前言 前面那么多基本上一个游戏需要的逻辑就差不多了,但是看上去还非常丑 ...
最新文章
- 对于STM32F103控制的三轴机械臂基本功能测试-关节转动控制
- 参加Google™ Code Jam - 中国编程挑战赛(2)
- VBS常用函数及功能
- NAB 2019见闻:CAE视频编码与QoE
- python利用特征进行可视化样本显示_利用Python进行机器学习之特征选择
- php div行内块元素,行内元素与块级元素的区别详细介绍
- 使用 jQuery Mobile 与 HTML5 开发 Web App (十四) —— jQuery Mobile 方法下
- C#从数据库导出数据到CSV
- QT5开发及实例学习之十六Qt5基础图形的绘制
- ONVIF流媒体播放流程
- 拼写检查器——朴素贝叶斯应用
- 花样机模板电脑CAD免费打板转格式软件PS300B使用步骤教程:日本兄弟牌Brother花样机通用CAD画图打板.dxf文件转.emb文件
- Fine-grained prosody modeling in neural speech synthesis using ToBI representation
- 阴阳师服务器维护结界卡暂停吗,阴阳师3月17日更新维护公告 全部更新内容汇总...
- 九度[1029]-魔咒词典
- 【HDR学习】苹果EDR技术洞察(二)
- jquery添加样式
- 推荐系统4--AutoRec与Deep Crossing(改变神经网络的复杂程度)
- 不用在PLC内编程,实现西门子与罗克韦尔(AB)PLC之间数据通讯
- sd卡计算机接口,sd卡怎么插电脑上
热门文章
- [蓝桥杯2015决赛]五星填数-枚举+数论
- ImportError: libicui18n.so.56 and/or libicui18n.so.58 when importing cv2
- Deeplab训练时候unexpected label
- F. Cheap Robot(kruskal 重构树)
- hdu 6962 I love tree 线段树维护二次函数
- Codeforces Round #691 (Div. 2)
- 牛客题霸 [斐波那契数列] C++题解/答
- 2020牛客国庆集训派对day4 	Digits Are Not Just Characters
- YBTOJ:斐波拉契(矩阵快速幂)
- Loj#114-k大异或和【线性基】