前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >六、变量数值计算符号和命令

六、变量数值计算符号和命令

原创
作者头像
jackxiao
发布2021-11-16 15:31:01
5690
发布2021-11-16 15:31:01
举报
文章被收录于专栏:DevOps运维DevOps运维

1. 常见算数运算符

符号

说明

+、-

加号、减号

*、/、%

乘法、触法、取余

**

冥运算

++、--

增减、减少

!、&&、||

逻辑非(取反)、逻辑与(and)、逻辑或(or)

<、<=、>、>=

比较符号(小于、大于)

==、!=、=

比较符号(相等、不相等、相当于)

<<、>>

向左移位、向右移位

~、|、&、^

按位取反、异或、与、或

=、+=、-=、*=、/+、%=

赋值运算(a+=1相当于a=a+1)

2. 常见算数运算命令

符号

说明

(())

用于整数运算的常用运算符,效率很高

let

用于整数运算,类似于"(())"

expr

可用于整数运算,还有很多其他功能

bc

linux下的计算器程序,适合整数及小数

$[]

用于整数运算

awk

awk既可用于整数,也可以用于小数运算

declare

定义变量值和属性,-i参数可以用于定义整形变量,做运算

二、计算实践

1. 双小括号

1) 常规用法

符号

说明

((i=i++))

先赋值后运算

((i=++i))

先运算后赋值

i=$((i+1))

运算后赋值给变量i

((a>7&&b<5))

进行比较操作,还可以做条件判断

echo $((2+1))

世界输出表达式的结果

++、-- 运算的记忆方法: i=i++表示先对i赋值,然后进行自加运算,即实际的i值比输出的i值大 i=++i表示先进行自加运算,在对i赋值,即实际的i和输出的i一样

2) i++和++i测试

  • i=6;echo $((i++));echo $i
代码语言:javascript
复制
6
7
  • i=6;echo $((++i));echo $i
代码语言:javascript
复制
7
7

2.其他计算命令

1) let 赋值表达式

let i=i+2等同于((i=i+2))

2) bc计算命令

bc是linux下的计算机,常常用配合管道进行计算,可以进行小数运算

代码语言:javascript
复制
echo "1+9"|bc
i=5;i=`echo $i+6|bc`

3) awk做算数运算

可以进行小数、整数的运算,很好用 echo "7.7 9.8"|awk '{print ($1+$2),($1*$2)}'

17.5 75.46

4) $[] 做运算

echo $[4+2] $[4*2] $[4**2]

6 8 16

三、案例

1.实现输出1+2+3..+10=55的计算和输出

  • 方法1:
代码语言:javascript
复制
echo `seq -s "+" 10`=`seq -s + 10|bc`

1+2+3+4+5+6+7+8+9+10=55

  • 方法2:
代码语言:javascript
复制
echo `echo {1..10}|tr " " "+"`=`echo {1..10}|tr " " "+"|bc`

1+2+3+4+5+6+7+8+9+10=55

  • 方法3:expr
代码语言:javascript
复制
echo `seq -s + 10`=`seq -s " + " 10|xargs expr`

1+2+3+4+5+6+7+8+9+10=55

  • 方法4:(())
代码语言:javascript
复制
echo `seq -s + 10`=$((`seq -s + 10`))  

1+2+3+4+5+6+7+8+9+10=55

2.read命令读取参数

1) read命令基础

  • 语法:read [参数] [变量名] -p 设置提示信息 -t 设置输入等待时间(秒) read -t 10 -p "input tow num:" a b

input tow num:1 2 设置10秒超时,提示语为**

2) 计算脚本演示

  • cat /server/scripts/t.sh
代码语言:javascript
复制
#!/bin/bash
read -p "num1:" a
read -p "num2:" b
echo "a-b=$(($a-$b))"
echo "a+b=$(($a+$b))"
echo "a*b=$(($a*$b))"
echo "a/b=$(($a/$b))"
echo "a**b=$(($a**$b))"

做到允许脚本后,分别提示输入两个字符串的功能

3) 脚本增加判断整数语句

  • cat /server/scripts/t.sh
代码语言:javascript
复制
#!/bin/bash
#no.1
read -p "num1:" a
expr $a + 0 &>/dev/null
[ $? -ne 0 ] && {
    echo "pls int"
    exit 1
}
#no.2
read -p "num2:" b
expr $b + 0 &>/dev/null
[ $? -ne 0 ] && {
    echo "pls int"
    exit 2
}
#no.3
echo "a-b=$(($a-$b))"
echo "a+b=$(($a+$b))"
echo "a*b=$(($a*$b))"
echo "a/b=$(($a/$b))"
echo "a**b=$(($a**$b))"

达到每输入一个字符串,验证是否为整数,不是整数则提示并退出,两个都是整数后,则进行计算

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1. 常见算数运算符
  • 2. 常见算数运算命令
  • 二、计算实践
    • 1. 双小括号
      • 1) 常规用法
      • 2) i++和++i测试
    • 2.其他计算命令
      • 1) let 赋值表达式
      • 2) bc计算命令
      • 3) awk做算数运算
      • 4) $[] 做运算
  • 三、案例
    • 1.实现输出1+2+3..+10=55的计算和输出
      • 2.read命令读取参数
        • 1) read命令基础
        • 2) 计算脚本演示
        • 3) 脚本增加判断整数语句
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档