linux echo命令做运算,计算1-数值计算命令和案例

[TOC]

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

## **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

```shell

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))"

```

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值