首页 > 系统 > Linux > 正文

详解Shell编程之变量数值计算(二)

2019-10-26 18:56:40
字体:
来源:转载
供稿:网友

OK,数值运算(上)是我看完的一小部分,大概的结束脚本如下:(回顾~~)

#!/bin/bash a=$1 b=$2 expr $1 + 1 &>/dev/null if [ "$?" -ne "0" ]  then   echo "请输入数字"   exit 1 fi  if [ "$#" -ne "2" ]  then   echo "请输入两个数字"     exit 1 fi  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))" 

这个脚本中包含了,特殊变量,数值运算命令expr判断语法。一些简单的if语句,特殊变量$#的用法。最后实现了运算~ 大家可以参考我的这篇文章://www.jb51.net/article/134292.htm

1、BC命令的用法

bc是UNIX&Linux下的计算器,因此输了可以做计算器使用,还可以作为命令行计算工具使用

在我们前面说的数值运算,我们都是以整数的形式来的,但是bc这个就不一样了 它可以处理小数~~~如下:


是不是感觉很方便的样子,接下来将BC用在命令行下面,实现运算

[root@shell-yankerp ~]# echo 1+2 | bc 3 [root@shell-yankerp ~]# echo 1.5+1.5 | bc 3.0 [root@shell-yankerp ~]# echo 2*2 | bc 4 [root@shell-yankerp ~]# echo 8.5-8.5 | bc 0 [root@shell-yankerp ~]#  

利用BC配置变量运算

[root@shell-yankerp ~]# i=5  #设置变量 i=5 [root@shell-yankerp ~]# i=`echo $i+5 | bc` [root@shell-yankerp ~]# echo $i  10 [root@shell-yankerp ~]#  

根据bc具有的特殊性质来来看,如果是小数,那么它处理是没有问题,如果是整数的话,那么就使用(()) let expr就好了。

2、使用awk实现计算

利用awk进行计算的效果很好,尤其是处理小数,很精确如下:


剖析:第一行 echo 7.1 3.23 | 让awk处理 '{print 打印 $1 为7.1 - $2为3.23}'得出3.87

第二行:echo 4 5 | 让awk进行处理 '{print  ($1为4那么在加4等于8)最后*$2 也就是乘5} ' 得出40

$[]运算

[root@shell-yankerp ~]# a=5 [root@shell-yankerp ~]# a=$[a+10] [root@shell-yankerp ~]# echo $a 15 [root@shell-yankerp ~]# echo $[2*3] 6 [root@shell-yankerp ~]# echo $[2/3] 0 [root@shell-yankerp ~]#  

3、基于Shell变量输入read命令的运算

read命令

Shell变量除了可以直接赋值或者脚本传参外,还可以使用read命令从标准输入中获取,read命令为bash内置的,命令。

用法如下:

-p 设置提示信息

-t 设置输入的等待时间 如下:


剖析:上图使用了read命令 -t是输入等到时间为10秒,那么-p就是提示的信息,在后面我们加了 o p 也就是说,当用户输入内容时 他会把内容赋值给变量 o p;

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表