2025年4月9日 星期三 乙巳(蛇)年 正月初十 设为首页 加入收藏
rss
您当前的位置:首页 > 计算机 > 编程开发 > Shell

Shell 基本(整数、小数、浮点数)运算($[]、$(())、let、expr、awk、bc)

时间:03-04来源:作者:点击数:40

一、基本表达式

  • 运算表达式:
    • expr:不支持浮点数计算,计算结果直接输出,中间必须存在空格。
      格式 expr 整数1 运算符 整数2 ...
    • $[]:不支持浮点数计算,空格可有可无。
      格式 $[整数1 运算符 整数2 ...]
    • $(()):不支持浮点数计算,空格可有可无。
      格式 $((整数1 运算符 整数2 ...))
    • let:不支持浮点数计算,除了 let 后面有空格,计算中必定不能存在空格,只能赋值,不能直接输出,需要通过 echo 进行输出。
      格式 let 属性名=整数1+整数2...
    • awk:不支持浮点数计算,使用时,直接使用数字进行计算跟使用变量进行计算需要注意区别。
      纯数字格式:echo | awk '{print 1/2}',可支持单引号计算。
      有变量格式:echo | awk "{print $x/$y}",必须双引号,也支持纯数字计算。
    • 重点:以上表达式都不支持浮点数计算
    • # $[] 表达式
    • $ echo $[1+2]
    • $ echo $[2-1]
    • $ echo $[2*1]
    • $ echo $[2/1]
    • $ echo $[2%3]
    • # $(()) 表达式
    • $ echo $((1+2))
    • # let 表达式
    • $ let x=1+2
    • $ echo $x
    • # expr 表达式
    • $ expr 1 + 2
    • # awk 表达式
    • $ echo | awk '{print 1/2}'
    • $ echo | awk "{print 1/2}"
    • $ x=1
    • $ y=2
    • $ echo | awk "{print $x/$y}"
  • 简写表达式(自增自减)
    简写表达式 完整表达式
    i++ i=i+1
    i– i=i-1
    i+=2 i=i+2
    i-=2 i=i-2
    i*=2 i=i*2
    i/=2 i=i/2
    i%=2 i=i%2
    • # 案例一:
    • $ x=4
    • $ echo $[x+=1]
    • 5
    • # 案例二:
    • $ x=4
    • $ let x++
    • $ echo $x
    • 5
    • # 案例三:
    • $ let x=4+1
    • $ echo $x
    • 5

二、小数运算(bc

  • bc 是 Linux 下的计算机工具模块,bc 支持 交互式 和 非交互式 两种计算,在进行计算的时候,可以使用 scale=n 来指定小数点的位数,还支持比较操操作符 >、>=、<、<=、==、!=
    • 交互式:打开 bc 计算机,进行使用。
    • 非交互式:通过脚本命令执行,不需要打开计算机。
  • 在使用 bc 命令时如果报错 bc: command not found,说明没有安装此工具模块,需要进行安装:
    • $ yum -y install bc
  • 交互式 使用 bc
    • # 进入计算机
    • $ bc
    • bc 1.06
    • Copyright 1991-1994, 1997, 1998, 2000 Free Software Foundation, Inc.
    • This is free software with ABSOLUTELY NO WARRANTY.
    • For details type `warranty'.
    • # 整数计算
    • 2*3
    • 6
    • # 小数计算
    • 3.4+9.0
    • 12.4
    • # 保留小数点
    • 10/2
    • 5
    • # 设置保留两位小数点
    • scale=2
    • # 整数相除
    • 10/2
    • 5.00
    • 4/5
    • .80
    • # 退出计算机
    • quit
    上面这种是类似直接打开计算机进行使用,一般还是需要将它用在脚本命令中去进行计算。
  • 非交互式 使用 bc
    格式:echo "计算公式" | bcecho "计算公式;计算公式" | bc
    • 正常计算
    • # 单个计算,可以不使用引号
    • $ echo 10/2 | bc
    • 5
    • # (推荐写法)单引号跟双引号的区别跟上面 awk 一致,可以看看上面 awk 的格式介绍
    • # 多个计算,使用 ';' 进行分割即可
    • $ echo '10/2;5/2' | bc
    • $ echo "10/2;5/2" | bc
    • 5
    • 2
    • # 保留2位小数
    • $ echo "scale=2;10/2;5/2" | bc
    • 5.00
    • 2.50
    • 比较操作符
    • # 单个比较
    • $ echo '1>2' | bc
    • 0
    • $ echo '1<2' | bc
    • 1
    • # 多个比较
    • $ echo '1>2;1<2' | bc
    • 0
    • 1
    • # 将计算结果值复制变量
    • $ x=$(echo '1>2' | bc)
    • $ echo $x
    • 0
    • $ x=$(echo '1<2' | bc)
    • $ echo $x
    • 1
方便获取更多学习、工作、生活信息请关注本站微信公众号城东书院 微信服务号城东书院 微信订阅号
推荐内容
相关内容
栏目更新
栏目热门