当前位置 博文首页 > Shell脚本编程中常用的数学运算实例

    Shell脚本编程中常用的数学运算实例

    作者:admin 时间:2021-02-20 15:04

    这部分主要讨论数学相关的shell脚本编程。

    加法运算

    新建一个文件“Addition.sh”,输入下面的内容并赋予其可执行的权限。

    复制代码 代码如下:
    #!/bin/bash
    echo “Enter the First Number: ”
    read a
    echo “Enter the Second Number: ”
    read b
    x=$(expr "$a" + "$b")
    echo $a + $b = $x

    输出结果:
    复制代码 代码如下:

    [root@tecmint ~]# vi Additions.sh
    [root@tecmint ~]# chmod 755 Additions.sh
    [root@tecmint ~]# ./Additions.sh
     
    “Enter the First Number: ”
    12
    “Enter the Second Number: ”
    13
    12 + 13 = 25

    减法运算

    复制代码 代码如下:

    #!/bin/bash
    echo “Enter the First Number: ”
    read a
    echo “Enter the Second Number: ”
    read b
    x=$(($a - $b))
    echo $a - $b = $x

    注意:这里我们没有像上面的例子中使用“expr”来执行数学运算。

    输出结果:

    复制代码 代码如下:

    [root@tecmint ~]# vi Substraction.sh
    [root@tecmint ~]# chmod 755 Substraction.sh
    [root@tecmint ~]# ./Substraction.sh
     
    “Enter the First Number: ”
    13
    “Enter the Second Number: ”
    20
    13 - 20 = -7

    乘法运算

    复制代码 代码如下:

    #!/bin/bash
    echo “Enter the First Number: ”
    read a
    echo “Enter the Second Number: ”
    read b
    echo "$a * $b = $(expr $a \* $b)"

    输出结果:
    复制代码 代码如下:

    [root@tecmint ~]# vi Multiplication.sh
    [root@tecmint ~]# chmod 755 Multiplication.sh
    [root@tecmint ~]# ./Multiplication.sh
     
    “Enter the First Number: ”
    11
    “Enter the Second Number: ”
    11
    11 * 11 = 12

    除法运算

    复制代码 代码如下:

    #!/bin/bash
    echo “Enter the First Number: ”
    read a
    echo “Enter the Second Number: ”
    read b
    echo "$a / $b = $(expr $a / $b)"

    输出结果:
    复制代码 代码如下:

    [root@tecmint ~]# vi Division.sh
    [root@tecmint ~]# chmod 755 Division.sh
    [root@tecmint ~]# ./Division.sh
     
    “Enter the First Number: ”
    12
    “Enter the Second Number: ”
    3
    12 / 3 = 4

    数组

    下面的这个脚本可以打印一组数字。

    复制代码 代码如下:

    #!/bin/bash
    echo “Enter The Number upto which you want to Print Table: ”
    read n
    i=1
    while [ $i -ne 10 ]
    do
    i=$(expr $i + 1)
    table=$(expr $i \* $n)
    echo $table
    done

    输出结果:
    复制代码 代码如下:

    [root@tecmint ~]# vi Table.sh
    [root@tecmint ~]# chmod 755 Table.sh
    [root@tecmint ~]# ./Table.sh
     
    “Enter The Number upto which you want to Print Table: ”
    29
    58
    87
    116
    145
    174
    203
    232
    261
    290

    你可以从这里下载这个例子的代码

    判断奇偶数

    复制代码 代码如下:

    #!/bin/bash
    echo "Enter The Number"
    read n
    num=$(expr $n % 2)
    if [ $num -eq 0 ]
    then
    echo "is a Even Number"
    else
    echo "is a Odd Number"
    fi

    输出结果:
    复制代码 代码如下:

    [root@tecmint ~]# vi EvenOdd.sh
    [root@tecmint ~]# chmod 755 EvenOdd.sh
    [root@tecmint ~]# ./EvenOdd.sh
     
    Enter The Number
    12
    is a Even Number
    1
    2
    3
    4
    5
    [root@tecmint ~]# ./EvenOdd.sh
     
    Enter The Number
    11
    is a Odd Number

    Factorial数

    复制代码 代码如下:

    #!/bin/bash
    echo "Enter The Number"
    read a
    fact=1
    while [ $a -ne 0 ]
    do
    fact=$(expr $fact \* $a)
    a=$(expr $a - 1)
    done
    echo $fact

    输出结果:
    复制代码 代码如下:
    [root@tecmint ~]# vi Factorial.sh
    [root@tecmint ~]# chmod 755 Factorial.sh
    [root@tecmint ~]# ./Factorial.sh
     
    Enter The Number
    12
    479001600

    你可以从这里下载这个例子的代码

    判断Armstrong数

    Armstrong数:在三位的正整数中,例如abc,有一些可能满足(a^3)+(b^3)+(c^3)=abc,即各个位数的立方和正好是该数的本身。这些数即称为Armstrong数。

    复制代码 代码如下:

    #!/bin/bash
    echo "Enter A Number"
    read n
    arm=0
    temp=$n
    while [ $n -ne 0 ]
    do
    r=$(expr $n % 10)
    arm=$(expr $arm + $r \* $r \* $r)
    n=$(expr $n / 10)
    done
    echo $arm
    if [ $arm -eq $temp ]
    then
    echo "Armstrong"
    else
    echo "Not Armstrong"
    fi

    输出结果:
    复制代码 代码如下:

    [root@tecmint ~]# vi Armstrong.sh
    [root@tecmint ~]# chmod 755 Armstrong.sh
    [root@tecmint ~]# ./Armstrong.sh
     
    Enter A Number
    371
    371
    Armstrong
    1
    2
    3
    4
    5
    6
    [root@tecmint ~]# ./Armstrong.sh
     
    Enter A Number
    123
    36
    Not Armstrong

    判断质数

    复制代码 代码如下:

    #!/bin/bash
    echo “Enter Any Number”
    read n
    i=1
    c=1
    while [ $i -le $n ]
    do
    i=$(expr $i + 1)
    r=$(expr $n % $i)
    if [ $r -eq 0 ]
    then
    c=$(expr $c + 1)
    fi
    done
    if [ $c -eq 2 ]
    then
    echo “Prime”
    else
    echo “Not Prime”
    fi

    输出结果:
    复制代码 代码如下:

    [root@tecmint ~]# vi Prime.sh
    [root@tecmint ~]# chmod 755 Prime.sh
    [root@tecmint ~]# ./Prime.sh
     
    “Enter Any Number”
    12
     
    “Not Prime”

    js
    下一篇:没有了