bash中的算术运算:help let

+, -, *, /, %取模(取余), **(乘方)

实现算术运算:

(1) let var=算术表达式

[root@centos7 ~]#a=20 [root@centos7 ~]#b=30 [root@centos7 ~]#c=$a+$b [root@centos7 ~]#let c=$a+$b [root@centos7 ~]#echo $c 50

(2) var=$[算术表达式]——var=$[a+b] echo $var

image.png

(3) var=$((算术表达式)) ——echo $((a+b))

(4) var=$(expr arg1 arg2 arg3 ...)——支持数字运算

image.png (5) declare –i var = 数值

image.png

(6) echo ‘算术表达式’ | bc ——计算从1加到100

image.png

乘法符号有些场景中需要转义,如* 

bash有内建的随机数生成器:$RANDOM(0-32767)

echo $[$RANDOM%50] :0-49之间随机数

赋值

增强型赋值: +=, -=, *=, /=, %= 

let varOPERvalue

例如:let count+=3 自加3后自赋值 ——let a+= 5 相当于a=a+5

自增,自减:

let var+=1

let var++ ——

image.png

image.png

let var-=1

let var-

逻辑运算

true, false 1, 0 

与: 全是1结果为1,有0则是0

1 与 1 = 1 1 与 0 = 0 0 与 1 = 0 0 与 0 = 0 

或:有1则为1,全0则是0

1 或 1 = 1

1 或 0 = 1

0 或 1 = 1

0 或 0 = 0

非:!就是取反

! 1 = 0

! 0 = 1 

短路运算

短路与 第一个为0,结果必定为0 ——cmd1 &&cmd2:cmd1为假的时候,不去执行后面的命令,结果也为假

第一个为1,第二个必须要参与运算 ——cmd1 && cmd2:cmd1为真的时候,去执行cmd2,cmd2为真的时候,结果为真,cmd为假的时候,结果为假

短路或 第一个为1,结果必定为1——cmd1 || cmd2:cmd1为真的时候,不去执行cmd2,结果为真

cmd2第一个为0,第二个必须要参与运算 ——cmd1为假的时候,cmd2为真的时候,去执行cmd2 ,结果为真,cmd2为假的时候,结果为假

异或:^ 异或的两个值,相同为假,不同为真

例子:当a=5,b=8时,通过异或实现a与b的互换

image.png

条件测试

(1) 判断某需求是否满足,需要由测试机制来实现 专用的测试表达式需要由测试命令辅助完成测试过程

(2) 测试命令: test EXPRESSION

image.png

例1:如果比较两个值相等,则输出结果显示为'equal',可以采用短路与来实现 a=xcv,b=xcv

image.png

例2:此时,改变b的值,让其不等于a,那么采用短路或实现输出结果为'not equal'

image.png

[ EXPRESSION ] =等价test变量

image.png

在test测试用法中空字符等同于没有赋值,而给变量赋值0或是空格,就是赋值输出结果为真

image.png

test:

-n:非空为真判断变量是否为空一定要加双引号

image.png

-z:空为真当给sdc赋值后,不再为空,那么空为假,则不执行下面的命令

image.png

数值测试:

-gt 是否大于

-ge 是否大于等于

-eq 是否等于

-ne 是否不等于

-lt 是否小于

-le 是否小于等于

例1:

image.png

例2:

image.png

例3:读取磁盘分区利用率,如果利用率大于10则报警

image.png

字符串测试:

"在没有赋值的时候,给字符串加上引号"

== 是否等于 > ascii码是否大于ascii码

< 是否小于 != 是否不等于

=~ 左侧字符串是否能够被右侧的PATTERN所匹配 注意: 此表达式一般用于[[ ]]中扩展的正则表达式

[[ EXPRESSION ]] ——支持正则表达式

image.png

注意:EXPRESSION前后必须有空白字符,在正则表达式中,字符串不用加引号

image.png

计算机语言中空下划线,2017-7-31 Shell脚本编程基础相关推荐

  1. Linux基础篇--shell脚本编程基础

    Linux基础篇–shell脚本编程基础 本章内容概要  编程基础  脚本基本格式  变量  运算  条件测试  配置用户环境 7.1 编程基础 程序:指令+数据 程序编程风格:   过程式:以指令为 ...

  2. Linux Shell脚本编程基础

    2 Linux Shell脚本编程基础 发表于: Linux, Shell, UNIX, 资源分享 | 作者: 谋万世全局者 标签: Linux,Shell,编程基础,脚本 本文作者:Leal 授权许 ...

  3. SHELL 脚本编程基础

    目录 前言 一. shell 概述 1.1 shell 和 shell 脚本 1.1.1 什么是shell 1.1.2 shell的作用 1.1.3 shell脚本是什么 1.1.4 shell脚本能 ...

  4. linux基础—课堂随笔_03 SHELL脚本编程基础

    shell脚本编程基础 条件选择:if语句 选择执行: 注意:if语句可嵌套 单分支 if(开头)判断条件:then 条件为真的分支代码  fi(结尾) 双分支 if(开头)判断条件:then 条件为 ...

  5. 算法及shell脚本编程基础

    bash存在多命令执行的特性,例如:# COMMAND1 $(COMMAND2):还有进程之间的通信(IPC):# COMMAND1 | COMMAND2- 一.命令执行结构与算法 命令执行中,存在顺 ...

  6. 《Linux命令行与shell脚本编程大全 第3版》Shell脚本编程基础---34

    以下为阅读<Linux命令行与shell脚本编程大全 第3版>的读书笔记,为了方便记录,特地与书的内容保持同步,特意做成一节一次随笔,特记录如下: 转载于:https://www.cnbl ...

  7. 《Linux命令行与shell脚本编程大全 第3版》Shell脚本编程基础---02

    以下为阅读<Linux命令行与shell脚本编程大全 第3版>的读书笔记,为了方便记录,特地与书的内容保持同步,特意做成一节一次随笔,特记录如下: 转载于:https://www.cnbl ...

  8. 《Linux命令行与shell脚本编程大全 第3版》Shell脚本编程基础---20

    以下为阅读<Linux命令行与shell脚本编程大全 第3版>的读书笔记,为了方便记录,特地与书的内容保持同步,特意做成一节一次随笔,特记录如下: 转载于:https://www.cnbl ...

  9. 《Linux命令行与shell脚本编程大全 第3版》Shell脚本编程基础---43

    以下为阅读<Linux命令行与shell脚本编程大全 第3版>的读书笔记,为了方便记录,特地与书的内容保持同步,特意做成一节一次随笔,特记录如下: 转载于:https://www.cnbl ...

  10. 《Linux命令行与shell脚本编程大全 第3版》Shell脚本编程基础---23

    以下为阅读<Linux命令行与shell脚本编程大全 第3版>的读书笔记,为了方便记录,特地与书的内容保持同步,特意做成一节一次随笔,特记录如下: 转载于:https://www.cnbl ...

最新文章

  1. 前向传播和反向传播_深度学习的地基模块:模型、参数、非线性、前向传播、反向偏微分
  2. 索尼搞了个大新闻!AI打败人类三冠王,登上Nature封面,这波让任天堂无话可说...
  3. 【编译原理】关于NFA和DFA-集合定义的探索
  4. Struts的基础案例的步骤
  5. python求乘积内建函数_Python中的内建函数(Built_in Funtions)
  6. 洛谷P5110:块速递推(特征根方程、光速幂)
  7. Material Design综合实例
  8. Java成神之路——一文搞懂CAS
  9. TokenInsight:反映区块链行业整体表现的TI指数较昨日同期上涨0.56%
  10. Win 10 没有 Hyper-V 解决方案
  11. Oracle如何实现利用实体化视图提高查询性能
  12. Easy-rules使用介绍
  13. 免费网络硬盘-千脑网盘
  14. 调整计算机硬盘大小,详细教您怎么调整硬盘分区
  15. 从条件概率到贝叶斯公式
  16. android实训总结ppt模板,ppt制作实训心得.docx
  17. 计算机图片怎么截图快捷键,电脑系统截图快捷键(电脑怎么截图)
  18. GNSS观测数据下载地址
  19. 多线程爬取中国土地市场网土地交易数据,最新2020/08/21
  20. anc降噪是什么意思

热门文章

  1. RabbitMQ安装方法 安装完成已验证方法步骤可行性
  2. 反思代码能力提升点:写链接不要写带域名的 一换环境就要改
  3. PHPExcel设置自动列宽
  4. Linux的Nginx一:概况
  5. python3迭代器和可迭代对象_一文读懂 Python3 可迭代对象、迭代器、生成器区别...
  6. python替换缺失值_python 缺失值处理(Imputation)
  7. Oracle Minus 取差集
  8. c语言 rand_C语言随机数
  9. java存储过程与sql语句_存储过程与SQL语句怎么选择
  10. canvas中文显示乱码 html5_浅析HTML5 Canvas的几种中文字体缩小方案