计算机编程就是三大步:输入、运算、输出
那么计算机运算有哪些呢,计算机能做哪些运算呢?
我们来看看常见的计算机运算
一、赋值运算
赋值运算符 =
a=10 name='baism' 重点:字符串必须用引号引起来
二、算术运算[四则运算]
2.1 运算符与命令
四则运算符: + - \ 【加减乘除】
扩展: % * 【取余 开方】
运算命令:
整形运算
– expr
– let
– $(())
– bc浮点运算
– bc
2.2 整形运算
expr 命令:只能做整数运算,格式比较古板,注意空格
[root@zutuanxue ~]# expr 1 + 1 2 [root@zutuanxue ~]# expr 5 - 2 3 [root@zutuanxue ~]# expr 5 \* 2 #注意*出现应该转义,否则认为是通配符 10 [root@zutuanxue ~]# expr 5 / 2 2 [root@zutuanxue ~]# expr 5 % 2 1
let命令:只能做整数运算,且运算元素必须是变量,无法直接对整数做运算
[root@zutuanxue ~]# let a=100+3;echo $a 103 root@zutuanxue ~]# let a=100-3;echo $a 97 [root@zutuanxue ~]# let a=100/3;echo $a 33 [root@zutuanxue ~]# let a=100*3;echo $a 300 [root@zutuanxue ~]# let a=100%3;echo $a 1 [root@zutuanxue ~]# let a=100**3;echo $a 1000000 [root@zutuanxue ~]# a=100 [root@zutuanxue ~]# let a++;echo $a 101 [root@zutuanxue ~]# let a--;echo $a 100 [root@zutuanxue ~]# let a-=3;echo $a 97 [root@zutuanxue ~]# let a+=5;echo $a 102
双小圆括号运算,在shell中(( ))也可以用来做数学运算
[root@zutuanxue ~]# echo $(( 100+3)) 103 [root@zutuanxue ~]# echo $(( 100-3)) 97 [root@zutuanxue ~]# echo $(( 100%3)) 1 [root@zutuanxue ~]# echo $(( 100*3)) 300 [root@zutuanxue ~]# echo $(( 100/3)) 33 [root@zutuanxue ~]# echo $(( 100**3)) #开方运算 1000000
2.3 浮点运算
浮点运算是采用的命令组合的方式来实现的 echo “scale=N;表达式”|bc
[root@zutuanxue ~]# echo "scale=2;3+100"|bc 103 [root@zutuanxue ~]# echo "scale=2;100-3"|bc 97 [root@zutuanxue ~]# echo "scale=2;100/3"|bc 33.33 [root@zutuanxue ~]# echo "scale=2;100*3"|bc 300
2.4、练习案例
2.4.1 实现一个四则运算计算器
案例思考: 计算器的功能: + - * \
实现步骤:
1、要求用户传输三个参数,num1 算术运算符 num2
2、运算输出结果
实现代码
##03_calculator.sh #!/bin/bash # #Author: www.zutuanxue.com #Release: #Description: 简单计算器 echo "$1 $2 $3"|bc
2.4.2 内存使用率统计,要求打印内存使用率
案例思考:
物料1、内存总量 获得方式是什么 free top /proc/meminfo
物料2、内存使用量
物料3、内存使用率公式 使用量/总量*100%
实现步骤:
1、获取内存总量
2、获取内存使用量
3、运算输出结果
实现代码
#job实现代码 04_memory_use.sh #!/bin/bash # #Author: www.zutuanxue.com #Release: #Description:内存使用率计算脚本 #free #1、获得内存总量 memory_total=`free -m|grep -i "mem"|tr -s " "|cut -d " " -f2` #2、获得内存使用的量 memory_use=`free -m|grep -i "mem"|tr -s " "|cut -d " " -f3` #3、计算输出 #运算的时候是否需要小数点 浮点运算,要考虑使用的命令 (难点 重点) #echo "内存使用率: $((memory_use*100/memory_total))%" #难点:浮点运算中,同优先级的情况下,大数除以小数 尽可能保证精确 echo "内存使用率: `echo "scale=2;$memory_use*100/$memory_total"|bc`%"
实现效果
#运算结果[root@zutuanxue day2]# sh memory_use.sh Memory使用率: 2.61%
三、比较运算
计算机除了算术和赋值运算外,还有比较运算,比如说比较两个数的关系,比较两个字符串的关系【用户登录系统】等。接下来我们学习如何在shell中进行比较运算
3.1、整形比较运算
运算符解释: 精确比较 -eq 等于 equal -gt 大于 -lt 小于 模糊比较 -ge 大于或等于 -le 小于或等于 -ne 不等于
通过test命令比较两个整数关系
[root@zutuanxue ~]# test 100 -gt 300;echo $? 1 [root@zutuanxue ~]# test 100 -ge 300;echo $? 1 [root@zutuanxue ~]# test 100 -eq 300;echo $? 1 [root@zutuanxue ~]# test 100 -le 300;echo $? 0 [root@zutuanxue ~]# test 100 -lt 300;echo $? 0 [root@zutuanxue ~]# test 100 -ne 300;echo $? 0 备注:linux命令test只能比较两个整数的关系,不会返回结果,需要通过$?才能看到结果