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

  1. 常见算数运算符
符号 说明
+、- 加号、减号
*、/、% 乘法、触法、取余
** 冥运算
++、– 增减、减少
!、&&、
<、<=、>、>= 比较符号(小于、大于)
==、!=、= 比较符号(相等、不相等、相当于)
<<、>> 向左移位、向右移位
~、 、&、^
=、+=、-=、*=、/+、%= 赋值运算(a+=1相当于a=a+1)
  1. 常见算数运算命令
符号 说明
(()) 用于整数运算的常用运算符,效率很高
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
6
7
i=6;echo $((++i));echo $i
7
7

2.其他计算命令
1) let 赋值表达式

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

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

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:

echo `seq -s "+" 10`=`seq -s + 10|bc`
1+2+3+4+5+6+7+8+9+10=55

方法2:

echo `echo {1..10}|tr " " "+"`=`echo {1..10}|tr " " "+"|bc`
1+2+3+4+5+6+7+8+9+10=55

方法3:expr

echo `seq -s + 10`=`seq -s " + " 10|xargs expr`
1+2+3+4+5+6+7+8+9+10=55

方法4:(())

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
#!/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
#!/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))"
文档更新时间: 2023-08-09 09:11   作者:月影鹏鹏
IT运维支持-AIWALY-月影工作室