shell运算详解,看这一篇就够了!

本文详细介绍了Linux Shell的运算操作,包括赋值运算、算术运算(四则运算及浮点运算)、比较运算、逻辑运算和文件判断。通过实例和练习案例,深入解析了各种运算符的使用,如实现四则运算计算器、内存使用率统计、文件类型和权限判断等,帮助读者掌握Shell脚本编程中的核心运算技巧。
摘要由CSDN通过智能技术生成


计算机编程就是三大步:输入、运算、输出

那么计算机运算有哪些呢,计算机能做哪些运算呢?

我们来看看常见的计算机运算

一、赋值运算


赋值运算符 =

a=10   
 	name='baism'
 
 重点:字符串必须用引号引起来

二、算术运算(四则运算)


2.1 运算符与命令

四则运算符:

+ → 加

- → 减

* → 乘

\ → 除

扩展:
% → 取余

** → 开方

运算命令:

  • 整形运算
    expr
    let
    $(())
    bc
  • 浮点运算
    bc

2.2 整形运算

expr命令:

只能做整数运算,格式比较古板,注意空格

[root@liza ~]# expr 1 + 1
2
[root@liza ~]# expr 5 - 2
3
[root@liza ~]# expr 5 \* 2  #注意*出现应该转义,否则认为是通配符
10
[root@liza ~]# expr 5 / 2
2
[root@liza ~]# expr 5 % 2
1

let命令:

只能做整数运算,且运算元素必须是变量,无法直接对整数做运算

[root@liza ~]# let a=100+3;echo $a
103
root@liza ~]# let a=100-3;echo $a
97
[root@liza ~]# let a=100/3;echo $a
33
[root@liza ~]# let a=100*3;echo $a
300
[root@liza ~]# let a=100%3;echo $a
1
[root@liza ~]# let a=100**3;echo $a
1000000
[root@liza ~]# a=100
[root@liza ~]# let a++;echo $a
101
[root@liza ~]# let a--;echo $a
100
[root@liza ~]# let a-=3;echo $a
97
[root@liza ~]# let a+=5;echo $a
102

双小圆括号运算,在shell中(( ))也可以用来做数学运算

[root@liza ~]# echo $(( 100+3))
103
[root@liza ~]# echo $(( 100-3)) 
97
[root@liza ~]# echo $(( 100%3))
1
[root@liza ~]# echo $(( 100*3))
300
[root@liza ~]# echo $(( 100/3))
33
[root@liza ~]# echo $(( 100**3))     #开方运算
1000000

2.3 浮点运算

浮点运算是采用的命令组合的方式来实现的 echo “scale=N;表达式”|bc

[root@liza ~]# echo "scale=2;3+100"|bc
103
[root@liza ~]# echo "scale=2;100-3"|bc
97
[root@liza ~]# echo "scale=2;100/3"|bc
33.33
[root@liza ~]# echo "scale=2;100*3"|bc
300

2.4 练习案例

2.4.1 实现一个四则运算计算器

案例思考: 计算器的功能: + - * \

实现步骤:

  1. 要求用户传输三个参数,num1 算术运算符 num2
  2. 运算输出结果

实现代码

#!/bin/bash
# 
#Author: li za
#Release: 
#Description: 简单计算器

echo "$1 $2 $3"|bc
2.4.2 内存使用率统计,要求打印内存使用率

案例思考:

  1. 内存总量 获得方式是什么 free top /proc/meminfo
  2. 内存使用量
  3. 内存使用率公式 使用量/总量*100%

实现步骤:

  1. 获取内存总量
  2. 获取内存使用量
  3. 运算输出结果

实现代码

#!/bin/bash
# 
#Author: li za
#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 " "<
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值