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
相关推荐
Helix25025 分钟前
Ansible混合环境自动化:Windows与Linux统一配置管理实战
windows·自动化·ansible·playbook·配置管理·winrm·混合环境
Lsetea32 分钟前
curl指定--tlsv1.2仍连接TLS1.3:最低版本与tls-max排查
linux·https·ssl证书·curl·tls
Lsetea38 分钟前
curl访问HTTPS报47 Too many redirects:重定向循环与max-redirs排查
linux·http·https·ssl证书·curl
2601_965619691 小时前
没时间给开源项目做宣传?AI自动化生成整套物料
人工智能·开源·自动化
合合技术团队1 小时前
合合信息旗下TextIn面向全球市场推出文档处理自动化公有云服务
运维·自动化
9624562 小时前
一次 Dell PowerEdge R750xs 启动故障复盘:从 iDRAC 带外管理到 Linux 多内核回退与 initramfs 重建
linux·运维·服务器
Zevalin爱灰灰3 小时前
Linux入门第一部分(Ubuntu入门篇) 第二章 浅尝Ubuntu(二)
linux·嵌入式·1024程序员节
海宇AI3 小时前
零信任架构实战:基于海宇行驶OCR证识别构建自动化租车车队行驶证电子档案网关
运维·人工智能·架构·自动化·1024程序员节
北京中科新远科技3 小时前
高速接口兼容排查实战:OSFP、QSFP112与QSFP56如何逐层验证
linux·运维·网络
Ruiery4 小时前
Linux 6.6内核 CPU 深度解析(零):x86 内核引导协议 — 从 bootloader 到 main()
linux·运维·服务器