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
相关推荐
hakesashou42 分钟前
python如何比较字符串
linux·开发语言·python
Ljubim.te1 小时前
Linux基于CentOS学习【进程状态】【进程优先级】【调度与切换】【进程挂起】【进程饥饿】
linux·学习·centos
cooldream20091 小时前
Linux性能调优技巧
linux
Elastic 中国社区官方博客1 小时前
Elasticsearch:使用 LLM 实现传统搜索自动化
大数据·人工智能·elasticsearch·搜索引擎·ai·自动化·全文检索
QMCY_jason2 小时前
Ubuntu 安装RUST
linux·ubuntu·rust
慕雪华年2 小时前
【WSL】wsl中ubuntu无法通过useradd添加用户
linux·ubuntu·elasticsearch
苦逼IT运维2 小时前
YUM 源与 APT 源的详解及使用指南
linux·运维·ubuntu·centos·devops
仍有未知等待探索2 小时前
Linux 传输层UDP
linux·运维·udp
zeruns8022 小时前
如何搭建自己的域名邮箱服务器?Poste.io邮箱服务器搭建教程,Linux+Docker搭建邮件服务器的教程
linux·运维·服务器·docker·网站
卑微求AC2 小时前
(C语言贪吃蛇)16.贪吃蛇食物位置随机(完结撒花)
linux·c语言·开发语言·嵌入式·c语言贪吃蛇