Shell整数和小数运算

目录

一.整数运算

方法一:expr

[方法二 :(())](#方法二 :(()))

[方法三:\[\]](#方法三:[])

[方法四 :let](#方法四 :let)

二.小数运算


一.整数运算

方法一:expr

bash 复制代码
#数学运算:
expr 5 + 3    # 输出结果为8
expr 10 - 4   # 输出结果为6
expr 2 * 6    # 输出结果为12
expr 15 / 3   # 输出结果为5
#逻辑运算:
expr 5 \> 3    # 输出结果为1,表示5大于3
expr 2 \<= 1   # 输出结果为0,表示2不小于等于1
expr 7 == 7    # 输出结果为1,表示7等于7
expr 9 != 8    # 输出结果为1,表示9不等于8
#字符串处理
expr length "Hello, World!"        # 输出结果为13,表示字符串的长度为13
expr substr "Hello, World!" 7 5    # 输出结果为"World",表示从第7个字符开始提取长度为5的子串
expr match "abcdefg" "a.*f"        # 输出结果为7,表示匹配成功,并且匹配到的子串长度为7

方法二 :$(())

bash 复制代码
echo $((10 - 4))   # 输出结果为6
echo $((2 * 6))    # 输出结果为12
echo $((7 % 3))    # 输出结果为1,表示7除以3的余数为1
echo $((2 ** 3))   # 输出结果为8,表示2的3次方等于8

方法三:$\[\]

bash 复制代码
echo $[5+2]       #输出结果为 7
echo $[5**2]      #输出结果为 25,即 5 的平方

方法四 :let

bash 复制代码
#!/bin/bash

let a=5+3
echo "a = $a" # 输出 a = 8

let b=10-2
let c=b*3
echo "c = $c" # 输出 c = 24

let d=15/3
let e=d%2
echo "e = $e" # 输出 e = 1

二.小数运算

在 Shell 脚本中,执行小数运算通常需要使用 bc 命令,它是一个用于数学计算的命令行工具,支持小数运算。

bash 复制代码
#!/bin/bash

# 设置精度为小数点后两位
scale=2

# 定义两个小数变量
a=3.14
b=2.73

# 使用 bc 进行加法运算
sum=$(echo "$a + $b" | bc)
echo "Sum: $sum" # 输出 Sum: 5.87

# 使用 bc 进行减法运算
difference=$(echo "$a - $b" | bc)
echo "Difference: $difference" # 输出 Difference: 0.41

# 使用 bc 进行乘法运算
product=$(echo "$a * $b" | bc)
echo "Product: $product" # 输出 Product: 8.57

# 使用 bc 进行除法运算
quotient=$(echo "scale=4; $a / $b" | bc)
echo "Quotient: $quotient" # 输出 Quotient: 1.1500
相关推荐
笨笨没好名字21 小时前
Leetcode刷题python3版第一周(下)
linux·算法·leetcode
xcLeigh21 小时前
KES运维自动化与脚本体系实战
运维·数据库·自动化·脚本·数据迁移·kes
潘正翔21 小时前
docker基础_镜像使用
linux·运维·服务器·docker·容器·centos·devops
24计网1王仔寿1 天前
Linux运维与云计算全栈系统化学习指南(Shell+虚拟化+OpenStack+Docker+公私云实战)
linux·课程设计·数据库开发·微信公众平台·neo4j·命令模式·sequoiadb
DB哥讲数据库1 天前
rocky linux安装教程:VMware虚拟机图文讲解部署Rocky Linux 9(附镜像包)
linux·运维·服务器
未*望1 天前
【Linux入坑(二)—全志T133开发板适配USB-电容屏触摸屏驱动(多点触控) 】
linux·运维·服务器
懒鸟一枚1 天前
为什么 useradd -rs /bin/false service 创建的用户无法用 su 切换?
linux·服务器·数据库
學點1 天前
Linux ubuntu安装redis
linux·redis·ubuntu
天空'之城1 天前
Linux 系统编程 10:线程同步
linux·开发语言·系统编程·线程同步
许彰午1 天前
75_Python自动化办公之Word与PDF
python·自动化·word