• 3. shell 数学运算 脚本的退出


    目录

    一、shell的数学运算

    二、shell脚本的退出

    正文

    一、shell的数学运算

    1. shell的求表达式变量的值:expr

    语法:expr 表达式

    expr 只能计算整数

    运算:

    • 加 +
    • 减 -
    • 乘 \*
    • 除 \
    • 取余 %
    MBC02FV3MZMD6P:J_shell j$ expr 1 + 1
    2
    MBC02FV3MZMD6P:J_shell j$ expr 2 - 1
    1
    MBC02FV3MZMD6P:J_shell j$ expr 2 \* 5
    10
    MBC02FV3MZMD6P:J_shell j$ expr 5 / 5
    1
    MBC02FV3MZMD6P:J_shell j$ expr 5 / 2
    2
    MBC02FV3MZMD6P:J_shell j$ expr 5 % 2
    1
    MBC02FV3MZMD6P:J_shell j$ 

    乘法运算要加转义字符\, 因为* 是通配符

    2. expr可应用于:判断变量是否是整数

    知识点【1】echo $? 

    如果返回值是0,就是执行成功;如果是返回值是0以外的值,就是失败。

    如下例子, expr 后面的表达式中,数字必须是整数。比如expr 1+ variable,用$? 查看上一条命令是否执行成功

    MBC02FV3MZMD6P:J_shell j$ expr 1 + 1.1
    expr: not a decimal number: '1.1'
    MBC02FV3MZMD6P:J_shell j$ echo $?
    2
    MBC02FV3MZMD6P:J_shell j$ expr 1 + 1
    2
    MBC02FV3MZMD6P:J_shell j$ echo $?
    0
    MBC02FV3MZMD6P:J_shell j$ 

    知识点【2】&>/dev/null  输入到系统回收站

    如下:想要查看上一句命令的执行结果,但是结果不输出,直接输入到系统的回收站内,用echo $?查看执行是否成功

    MBC02FV3MZMD6P:J_shell j$ expr 1 + 1.1 &>/dev/null; echo $?
    2
    MBC02FV3MZMD6P:J_shell j$ expr 1 + 1 &>/dev/null; echo $?
    0
    MBC02FV3MZMD6P:J_shell j$ 

    知识点【3】let进行整数运算

    let 命令是 BASH 中用于计算的工具,用于执行一个或多个表达式,变量计算中不需要加上 $ 来表示变量。如果表达式中包含了空格或其他特殊字符,则必须引起来

    语法: let 表达式

    MBC02FV3MZMD6P:J_shell j$ let a=4+5
    MBC02FV3MZMD6P:J_shell j$ let b=2+3
    MBC02FV3MZMD6P:J_shell j$ echo $a,$b
    9,5
    MBC02FV3MZMD6P:J_shell j$ let a=20
    MBC02FV3MZMD6P:J_shell j$ let b=10
    MBC02FV3MZMD6P:J_shell j$ let a-=5
    MBC02FV3MZMD6P:J_shell j$ echo $a
    15
    MBC02FV3MZMD6P:J_shell j$ let b+=50
    MBC02FV3MZMD6P:J_shell j$ echo $b
    60
    MBC02FV3MZMD6P:J_shell j$ 

    知识点【4】:bc计算器 可进行浮点型数据运算

    • 安装bc计算器
    • 打开bc计算器

    上例子:整型、浮点型都可以计算,默认是不保留小数点

    保留小数,用scale;scale=2,表示保留2位小数

    MBC02FV3MZMD6P:J_shell j$ bc
    bc 1.06
    Copyright 1991-1994, 1997, 1998, 2000 Free Software Foundation, Inc.
    This is free software with ABSOLUTELY NO WARRANTY.
    For details type `warranty'. 
    1+1.1
    2.1
    2+3
    5
    5+7.8
    12.8
    10*3/5
    6
    20/3
    6
    scale=2
    20/3
    6.66

    如下计算百分比的例子:

    MBC02FV3MZMD6P:~ j$ echo "percent is:`echo "scale=2;141*100/8556"|bc`%"
    percent is:1.64%
    

    知识点【5】:双小括号+$进行运算

    语法: $((表达式))

    MBC02FV3MZMD6P:~ j$ echo $((3*7+8))
    29
    MBC02FV3MZMD6P:~ j$ echo $((3**3))
    27
    MBC02FV3MZMD6P:~ j$ echo $((100/3))
    33
    MBC02FV3MZMD6P:~ j$ echo $((100%3))
    1
    MBC02FV3MZMD6P:~ j$ 

    二、shell脚本的退出

    exit 是一个 Shell 内置命令,用来退出当前 Shell 进程,并返回一个退出状态;使用$?可以接收这个退出状态;exit 命令可以接受一个整数值作为参数,代表退出状态。

    exit 退出状态只能是一个介于 0~255 之间的整数;如果不指定,默认状态值是 0。

    默认值是0

    #!/bin/bash
      
    echo "hello world"
    exit 0

    执行脚本后查看返回状态:

    MBC02FV3MZMD6P:J_shell j$ vim exit_code.sh
    MBC02FV3MZMD6P:J_shell j$ sh exit_code.sh 
    hello world
    MBC02FV3MZMD6P:J_shell j$ echo $?
    0

    把exit 的输出改成5,再次执行;

    MBC02FV3MZMD6P:J_shell j$ vim exit_code.sh
    MBC02FV3MZMD6P:J_shell j$ sh exit_code.sh 
    hello world
    MBC02FV3MZMD6P:J_shell j$ echo $?
    5
  • 相关阅读:
    Python(二)
    Python(三)
    Python(一)
    shell(计算机壳层)(一)
    web.xml中 /和/*的区别
    dubbo-admin监控搭建2.6.0版本
    Centos7安装maven
    Dubbo启动时qos-server can not bind localhost:22222错误解决
    Centos7安装zookeeper
    mysql5和mysql8连接数据库的配置
  • 原文地址:https://www.cnblogs.com/ananmy/p/15621422.html
Copyright © 2020-2023  润新知