算数运算

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. 微信开放平台--》网站应用开发 微信登录网站接口(https://open.weixin.qq.com/)

    地址:https://open.weixin.qq.com/ 手册:https://open.weixin.qq.com/cgi-bin/showdocument?action=dir_list&am ...

  2. linux安全第一周总结——20135227黄晓妍

    实验部分: 我将源代码做了修改,将其中一个数字修改为我学号27 2.在实验楼环境下将其保存为text.c并将其编译,得到text.s 3.将.开头的多余的语句删去了之后,我得到了32位环境的汇编代码 ...

  3. Centos7服务器搭建VNC Server环境

    在企业级项目的开发中,尤其是分布式项目,经常直接在服务器上进行开发工作,操作系统环境一般是Centos 7.普遍状况是,在服务器上安装IDE 开发工具,通过 Xshell等工具远程启动,本地通过虚拟桌 ...

  4. ASP.NET Web API Claims Authorization with ASP.NET Identity 2.1 Part 5 (by TAISEER)

    https://www.cnblogs.com/KimmyLee/p/6430474.html https://www.cnblogs.com/rocketRobin/p/9077523.html h ...

  5. mybatis动态sql中的bind绑定

    知识点:bind在模糊查询中的用法 在我的博客    mybatis中使用mysql的模糊查询字符串拼接(like) 中也涉及到bind的使用 <!-- List<Employee> ...

  6. [译]JavaScript需要类吗?

    [译]JavaScript需要类吗?   原文:http://www.nczonline.net/blog/2012/10/16/does-javascript-need-classes/ 译者注:在 ...

  7. 解题报告:hdu2191汶川地震 - 多重背包模板

    2017-09-03 17:01:36 writer:pprp 这是一道多重背包裸题 - 记得是从右向左进行,还有几点需要注意啊,都在代码中表示出来了 代码如下: /* @theme:hdu2191 ...

  8. Gray Code,求格林码

    问题描述: The gray code is a binary numeral system where two successive values differ in only one bit. G ...

  9. tcpdump实用笔记

    前言:本文是关于tcpdump抓包的文章,是一篇对于本人而言比较实用轻便的文章,如您需要更详细的介绍,以下链接的文章相比最适合您,而且网络知识要非常扎实才能理解透彻: tcpdump详细介绍 简介:用 ...

  10. nignx的master进程和worker进程的作用

    ngnix进程启动启动后会有一个master进程和多个worker进程. master进程的主要作用: 1.读取并验证配置信息: 2.创建,绑定及关闭套接字: 3.启动,终止worker进程以及维护w ...