算数运算

1. 使用let命令

#!/sbin/bash
var1=2
var2=3
let sum=var1+var2
echo $sum

使用let命令式,变量前不需要加$号
只用于整数运算,不适用浮点数

2. 使用$[...]

[]的使用与let类似
#!/sbin/bash
var1=2
var2=3
sum=$[ var1+var2 ]
echo $sum
通let一样,变量不需要使用$,但是计算结果需要在[前使用$
只用于整数运算,不适用浮点数

3 使用$((...))

#!/sbin/bash
var1=2
var2=3
sum=$((var1+var2))
echo $sum
用法类似于$[...]
只用于整数运算,不适用浮点数   

4 expr

#!/sbin/bash
var1=2
var2=3
sum=`expr $var1 + $var2`
echo $sum
注意 反单引号```的使用,还有变量前需要使用$,另运算法两边需要有空格

5 可以用于浮点数计算的bc工具

#!/sbin/bash
var1=2.6
var2=3
sum=`echo "$var1 * $var2" | bc`
echo $sum

bc工具还可以通过scale进行精度设置,并且具有进制转换等功能。


条件测试

算数比较
比较运算符:
-eq 等于
-ne 不等于
-gt 大于
-lt 小于
-ge 大于等于
-le 小于等于
用法如下:
[ $var1 -eq $var2 ]

逻辑运算符

-a  且
-o 或
用例:
[ $var1 -eq 0 -a $var2 -ne 2 ]

文件测试

[ -f $file_var ]<span style="white-space:pre">	</span>//判断是否为普通文件或路径,是的话返回真
[ -x $var ] //判断是否为可执行文件
[ -d $var ] //判断是否为目录
[ -e $var ] //判断文件是否存在
[ -c $var ] //判断是否为字符设备文件
[ -b $var ] //判断是否为块设备文件
[ -w $var ] //判断文件是否可写
[ -r $var ] //判断文件是否可读
[ -L $var ] //判断文件是否为符号链接

用法

if condition then
fpath="/etc/passwd"
if [ -e $fpath ]; then
echo "$fpath exist!"
else
echo "$fpath exist!"
fi

字符串比较

字符串比较可以直接使用 ==  > < >= <=符号

-z    // 判断是否为空字符串
-n //判断是否为非空字符串

判断表达式 [ ]  可以用test替代














Shell学习笔记——算数运算与条件测试的更多相关文章

  1. 【转】shell学习笔记(四)——条件测试

    1 test 条件检测 当我要检测系统上面某些文件或者是相关的属性时,利用 test 这个命令来工作真是好用得不得了, 举例来说,我要检查 /home/oracle/zy是否存在时,使用: test ...

  2. Shell基础(二):Shell中的数值运算、条件测试操作、使用if选择结构

    一.Shell中的数值运算 目标: 本案例要求熟悉Linux Shell环境的特点,主要练习以下操作: 1> 使用expr.$[ ].let等整数运算工具:定义变量X=1234,然后计算X与78 ...

  3. shell 字符串比较 算数比较 文件条件测试

    set-group-id即set-gid -->授予了程序其所在组的访问权限 set-user-id即set-uid -->授予了程序其拥有者的访问权限而不是其使用者的访问权限 set-g ...

  4. 学习笔记:CentOS7学习之二十一: 条件测试语句和if流程控制语句的使用

    目录 学习笔记:CentOS7学习之二十一: 条件测试语句和if流程控制语句的使用 21.1 read命令键盘读取变量的值 21.1.1 read常用见用法及参数 21.2 流程控制语句if 21.2 ...

  5. SHELL学习笔记----IF条件判断,判断条件

    SHELL学习笔记----IF条件判断,判断条件 前言: 无论什么编程语言都离不开条件判断.SHELL也不例外.  if list then           do something here   ...

  6. [转帖][Bash Shell] Shell学习笔记

    [Bash Shell] Shell学习笔记 http://www.cnblogs.com/maybe2030/p/5022595.html  阅读目录 编译型语言 解释型语言 5.1 作为可执行程序 ...

  7. shell学习笔记汇总

    1.shell脚本中函数使用 函数定义在前,调用在后,顺序反了就没有效果了.函数调用为:函数名 参数列表 函数内部通过以下变量访问函数的参数:shell脚本函数中: $0: 这个脚本的名字 $n: 这 ...

  8. shell学习笔记

    shell学习笔记 .查看/etc/shells,看看有几个可用的Shell . 曾经用过的命令存在.bash_history中,但是~/.bash_history记录的是前一次登录前记录的所有指令, ...

  9. python3.4学习笔记(十) 常用操作符,条件分支和循环实例

    python3.4学习笔记(十) 常用操作符,条件分支和循环实例 #Pyhon常用操作符 c = d = 10 d /= 8 #3.x真正的除法 print(d) #1.25 c //= 8 #用两个 ...

随机推荐

  1. elasticsearch 5.x集群安装

    1. 下载 wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-5.5.1.tar.gz 2. 解压 为便于 ...

  2. maven常见指令和插件

    总结自:https://www.cnblogs.com/ysocean/p/7416307.html#_label1及 https://blog.csdn.net/zhaojianting/artic ...

  3. 20145303 实验二 Java面向对象程序设计

    实验二 Java面向对象程序设计 实验内容 初步掌握单元测试和TDD 理解并掌握面向对象三要素:封装.继承.多态 初步掌握UML建模 熟悉S.O.L.I.D原则 了解设计模式 实验要求 1.没有Lin ...

  4. 20145313 《Java程序设计》第十周学习总结

    网络编程 网络编程就是在两个或两个以上的设备(例如计算机)之间传输数据.程序员所作的事情就是把数据发送到指定的位置,或者接收到指定的数据,这个就是狭义的网络编程范畴.在发送和接收数据时,大部分的程序设 ...

  5. 2017杭电ACM集训队单人排位赛 - 6

    2017杭电ACM集训队单人排位赛 - 6 排名 1000 1001 1002 1003 1004 1005 1006 1007 1008 1009 1010 59 1 X X 1 1 X X 0 1 ...

  6. Java学习笔记-方法引用

    方法引用(Method Reference) 上一篇中记录了Lambda表达式,其可以创建匿名方法.当Lambda表达式只是调用一个存在的方法时,可以采用方法引用(JDK8具有的特性).如下: pub ...

  7. Job流程:Shuffle详解

    此文承接Job流程:Mapper类分析.MapReduce为确保每个reducer的输入都按键排序,数据从map输出到reducer输入的这段过程成为Shuffle. map端 1).Spill溢写. ...

  8. linux下如何制作ext4文件系统镜像

    1.生成一个空的2MiB文件 dd if=/dev/zero of=rootfs.ext4 bs=1024 count=2048 (指定每一块大小为1024字节,一共又2048块,那么就是2048 * ...

  9. 关于Bonobo Git Server的安装

    1.关于安装 参考官网:https://bonobogitserver.com/ 实际上就是在IIS上搭建一个MVC程序.安装教程:https://bonobogitserver.com/instal ...

  10. Spring @Scheduler使用cron时的执行问题

    主要想弄清使用Spring @Scheduler cron表达式时的两个问题: 同一定时任务,第二次触发时间到了,第一次还没有执行完成时会执行吗? 不同的定时任务,相互之间是否有影响? 结论写在前面: ...