zoukankan      html  css  js  c++  java
  • Shell——2

    基本数据类型运算

    操作符

    符号

    语义

    描述

    +

    10+10,结果为20

    -

    10-3, 结果为7

    *

    10*2,结果为20

    /

    10/3, 结果为3(取整数)

    %

    求余

    10%3, 结果为1 (取余数)

    ==

    判断是否相等

    两数相等返回1,否则0

    !=

    判断是否不等

    两数不等返回1,否则0

    >

    大于

    前者大于后者返回1,否则0

    >=

    大于或等于

    前者大于或等于后者返回1,否则0

    <

    小于

    前者小于后者返回1,否则0

    <=

    小于或等于

    前者小于或等于后者返回1,否则0

     

    整数运算

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

    浮点运算

    在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
  • 相关阅读:
    linux下压力测试工具ab的使用
    linux下nginx日常操作
    centos7编译安装nginx
    ssh登录locale报错:cannot change locale (zh_CN.UTF-8): No such file or directory
    linux重装rabbitmq的问题
    rabbitmq3.6.5镜像集群搭建以及haproxy负载均衡
    linux安装rabbitmq3.6.5
    centos6升级glibc-2.14没有报错,但是验证没有升级成功的问题解决
    linux卸载erlang
    asp web服务
  • 原文地址:https://www.cnblogs.com/simly/p/12756875.html
Copyright © 2011-2022 走看看