美文网首页
shell编程其实真的很简单(二)

shell编程其实真的很简单(二)

作者: 木有鱼丸啦 | 来源:发表于2019-06-27 15:38 被阅读0次

上篇我们学会了如何使用及定义变量。按照尿性,一般接下来就该学基本数据类型的运算了。没错,本篇就仍是这么俗套的来讲讲这无聊但又必学的基本数据类型的运算了。基本数据类型运算操作符符号语义描述+加10+10,结果为20-减10-3, 结果为7乘102,结果为20/除10/3, 结果为3(取整数)%求余10%3, 结果为1 (取余数)==判断是否相等两数相等返回1,否则0!=判断是否不等两数不等返回1,否则0>大于前者大于后者返回1,否则0>=大于或等于前者大于或等于后者返回1,否则0<小于前者小于后者返回1,否则0<=小于或等于前者小于或等于后者返回1,否则0
上述操作符与其它语言相比,并无特殊之处。
在shell中,对于基本数据类型的运算主要分为两种,整数运算和浮点数(小数)运算。下面就分别来看看这两种运算:整数运算
在shell中,有两种方式能实现整数运算,一种是使用expr命令, 另外一种是通过方括号($[])来实现。下面分别来看看:expr


#!/bin/bash
#输出13
expr 10 + 3

#输出10+3
expr 10+3

#输出7
expr 10 - 3

#输出30
expr 10 \* 3

#输出3
expr 10 / 3

#输出1
expr 10 % 3

#将计算结果赋值给变量
num1=$(expr 10 % 3)

#将计算结果赋值给变量
num2=`expr 10 % 3`

注意:
1.
在以上的乘法(*)中,我们用了反斜线()来转义,不然会报错。
2.
运算符前后必须还有空格,否则会被直接当作字符串返回。
3.
如果要将计算结果保存到变量,就需要用到我们上篇文章讲到的那两种方式($() 或者 ``)来替换命令了。

这种种迹象无不让人吐槽啊。幸好还有一种实现方式,那就是接下来要看的方括号。方括号($[])

#!/bin/bash
num1=10
num2=3
#输出num1 + num2=13
echo "num1 + num2=$[$num1 + $num2]"

#输出num1+num2=13
echo "num1+num2=$[$num1+$num2]"

#输出num1 - num2=7
echo "num1 - num2=$[$num1 - $num2]"

#输出num1 * num2=30
echo "num1 * num2=$[$num1 * $num2]"

#输出num1 > num2=1
echo "num1 > num2=$[$num1 > $num2]"

#输出num1 < num2=0
echo "num1 < num2=$[$num1 < $num2]"

#将运算结果赋值给变量,输出num3=3
num3=$[$num1 / $num2]
echo "num3=$num3"

看了这种运算,再回看expr, 是不是觉得要升天,终于正常了。expr的那几个注意事项,在这儿都不算事儿。所以,如果要图简单,还是用这种方式吧。浮点运算
在shell中,做浮点运算一般是用bash的计算器(bc)。在shell脚本中,一般我们的使用方法是:
variable=$(echo "options; expression" | bc)
options是bc的一些选项,例如: 可以通过scale去设置保留的小数位数。具体有哪些参数,可以man bc进行查看
expression就是我们具体的表达式,例如 10 * 3
" | " 这个符号,对于熟悉linux系统的人来说,这个再熟悉不过了。它叫做管道, 之所以会叫做管道,其实很形象,你可以把它看作一根水管,水管一头接入前一个命令的返回结果, 一头接入下一个命令。表示将前一个命令的执行结果作为后一个命令的参数输入。以上,表示将我们的表达式作为bc的参数输入。

#!/bin/bash
#表示 10/3, 保留2位小数,将结果赋值给了num, 输出3.33
num=$(echo "scale=2; 10 / 3" | bc)
echo $num

小结
本篇比较无聊,简单介绍了shell的基本运算符及其运算。shell运算主要分为整型和浮点型的运算。整型又有两种实现方式,浮点型是通过使用bash内置的计算器(bc)来实现的。
好啦,到此,我们学习了shell的变量的使用,也学习了基本数据类型变量的计算啦!挺简单吧

相关文章

  • shell编程其实真的很简单(二)

    上篇我们学会了如何使用及定义变量。按照尿性,一般接下来就该学基本数据类型的运算了。没错,本篇就仍是这么俗套的来讲讲...

  • shell编程其实真的很简单(一)

    shell编程其实真的很简单(一) 如今,不会Linux的程序员都不意思说自己是程序员,而不会shell编程就不能...

  • shell编程其实真的很简单(五)

    通过前几篇文章的学习,我们学会了shell的基本语法。在linux的实际操作中,我们经常看到命令会有很多参数,例如...

  • shell编程其实真的很简单(四)

    上篇我们学习了shell中条件选择语句的用法。接下来本篇就来学习循环语句。在shell中,循环是通过for, wh...

  • shell编程其实真的很简单(三)

    通过前两篇文章,我们掌握了shell的一些基本写法和变量的使用,以及基本数据类型的运算。那么,本次就将要学习she...

  • shell 案例

    Shell编程一 Shell防范ARP攻击 Shell编程二 Shell防范DDos攻击 Shell编程三 ...

  • Powershell快速入门(一) 安装和使用

    一说起 Shell 编程,我们大家想到的应该都是Linux 下的 Shell 编程。其实 Windows 下也可以...

  • BigData~01:Shell

    Shell编程基础 内容大纲 一、Shell编程二、高级文本处理命令:sed、awk、cut三、crontab定时...

  • 其实编程很简单

    明明很简单的事情,但有些人会故意把他讲得很复杂,以显示老师的水平,或则老师本身就不擅长讲课,讲不明白。 之前我跟着...

  • shell 第一天

    shell编程初识 1.1 shell编程初识 shell的定义 Shell 是命令解释器 Shell 也是...

网友评论

      本文标题:shell编程其实真的很简单(二)

      本文链接:https://www.haomeiwen.com/subject/tkqrcctx.html