算数运算

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. 【c++ primer, 5e】【函数基础】

    p182~p185: 函数1.在调用函数和执行return语句的同时,也发生了控制权的转移. 2.函数返回值不能是一个数组.(但是可以返回一个包含数组的对象,或者指向数组的指针) 3.重要概念:名字的 ...

  2. php AES-128-CBC 加密 通信java

    <?phpheader("Content-type: text/html; charset=utf-8");require('MyAES.php');class Xfb{ / ...

  3. 20145309《Java程序设计》第八周学习总结

    日志 •java.util.logging包提供了日志功能相关类与接口,使用日志的起点是logger类,Logger类的构造函数标示为protected,不是java.util.logging同包的类 ...

  4. Java搞笑注释(佛-)

    // _ooOoo_ // o8888888o // 88" . "88 // (| -_- |) // O\ = /O // ____/`---'\____ // . ' \\| ...

  5. poj_2528 Mayor's posters (线段树经典题+离散化方法)

    由于题面中给定的wall最大长度为10 000 000:若简单用线段树势必会超时. 而注意到题面中规定了输入海报的个数<=1000:因此不妨离散化,使得线段中叶节点仅含有1000个,那么线段最大 ...

  6. django中的分页设置

    1.在控制台中的展示 from django.core.paginator import Paginator iter = 'abcdefghijklmn' inator = Paginator(it ...

  7. 管理账号密码的工具-KeePass使用方法

    附件链接:https://files.cnblogs.com/files/stxs/KeePass.zip 打开压缩包“KeePass.zip",将文件"KeePass.exe&q ...

  8. 【Semantic Segmentation】DeepLab V3(转)

    原文地址:DeepLabv3 代码: TensorFlow Abstract DeepLabv3进一步探讨空洞卷积,这是一个在语义分割任务中:可以调整滤波器视野.控制卷积神经网络计算的特征响应分辨率的 ...

  9. python中的上下文管理器

    刚刚看了vamei大神的上下文管理器博客,理解如下: 其实我自己经常用到上下文管理器,尤其是在打开文件的时候,如果自己比较懒,不想手工打上f.close(),使用上下文管理器就ok拉. 上下文管理器就 ...

  10. RabbitMQ 的路由模式 Topic模式

    模型 生产者 package cn.wh; import java.io.IOException; import java.util.concurrent.TimeoutException; impo ...