shell脚本编程-数学运算

简介: shell脚本编程-数学运算

语法格式


语法
方法二 expr $num1operator$num2
方法二 $(($num1operator$num2))

expr操作符对照表

操作符 含义
num1|num2 num1不为空且非0,返回num1;否则返回num2
num1&num2 num1不为空且非0,返回num1;否则返回0
num1<num2 num1小于num2,返回1;否则返回0
num1<=num2 num1小于等于num2,返回1;否则返回0
num1=num2 num1等于num2,返回1;否则返回0
num1!=num2 num1不等于num2,返回1;否则返回0
num1>num2 num1大于num2.返回1;否则返回0
num1>=num2 num1大于等于num2,返回1;否则返回0

遇到了一些不同的东西,Linux中使用expr表达式,关键字符需要加上转义字符,不然会出现错误。

expr $num1 \| $num2
expr $num1 \& $num2
expr $num1 \> $num2

虽然 (())也是做计算的,效果上和expr表达式相似,但是也有不同的地方

#在(())中下面表达式进行的是 位与和位或的操作,这个和expr表达式是不一样的
#(())的运算需要赋值给一个变量,直接运行会报错
$((num1 & num2))
$((num1 | num2))

常用算术操作符

操作符 含义
num1+num2 求和
num1-num2 求差
num1*num2 求积
num1/num2 求商
num1%num2 求余

关系运算符

关系运算符只支持数字,不支持字符串,除非字符串也是数字

操作符 含义
$num1-eq $num2 判断两个数是否相等,相等返回true
$num1-ne $num2 判断两个数是否不相等,不相等返回true
$num1-gt $num2 判断左边的数是否大于右边的,如果是,返回true
$num1-lt $num2 判断左边的数是否小于右边,如果是,返回true
$num1-ge $num2 判断左边的数是否大于等于右边的,如果是,返回true
$num1-le $num2 判断左边的数是否小于等于右边,如果是,返回true

练习

输入一个正整数,然后计算1+2+3+...+num的值;必须对num是否为正整数做判断,不符合应当允许再次输入

#!/bin/bash
#
while true
do
            read -p "Pls input a number: " num
            # 通过expr表达式进行计算,如果两个参与计算的数都是整数,则返回值为0,否则不为0
            # /dev/null:表示 的是一个黑洞,通常用于丢弃不需要的数据输出
            expr $num + 1 &> /dev/null
            if [ $? -eq 0 ]
            then
                    if [ $num -gt 0 ]
                    then
                            for((i=i;i<$num;i++))
                            do
                                    sum=`expr $sum + $i`
                            done
                            echo "1+2+3+...+$num = $sum"
                            exit
                    fi
            fi
            echo "Error"
done



拓展bc命令

  • bc是bash内建的运算器,支持浮点数运算
  • 内建变量scale可以设置,默认为0

echo "43 + 5" | bc
echo "scale=4;10/3" | bc
目录
相关文章
|
3天前
|
Shell Linux
Linux Shell 脚本入门教程:开启你的自动化之旅
Shell是一种计算机程序,它充当了用户与操作系统之间的接口。在Linux系统中,Shell允许用户通过命令行界面(CLI)来控制计算机。Shell脚本则是一种使用Shell语言编写的脚本,它可以自动执行一系列的命令,帮助用户实现任务自动化,提高工作效率。
|
9天前
|
Shell
蓝易云 - 简单shell脚本的编写教程
以上就是编写一个基本Shell脚本的步骤。当然,Shell脚本可以做的远不止这些,你可以使用变量,控制结构(如if语句和循环),以及各种Shell命令和功能来编写更复杂的脚本。
14 1
|
5天前
|
移动开发 网络协议 Shell
查看IP访问量的shell脚本汇总
查看IP访问量的shell脚本汇总
|
5天前
|
存储 Unix Shell
Shell编程基础与实用技巧
Shell编程基础与实用技巧
|
9天前
|
Shell 调度
Shell脚本中的if条件判断语句
Shell脚本中的if条件判断语句
|
10天前
|
Shell
蓝易云 - 简单shell脚本的编写教程
以上就是编写一个基本Shell脚本的步骤。当然,Shell脚本可以做的远不止这些,你可以使用变量,控制结构(如if语句和循环),以及各种Shell命令和功能来编写更复杂的脚本。
6 0
|
10天前
|
机器学习/深度学习 Unix Java
技术笔记:Linux之Shell脚本编程(一)
技术笔记:Linux之Shell脚本编程(一)
15 0
|
14天前
|
Shell
Shell脚本之条件语句if总结
Shell脚本之条件语句if总结
|
9月前
|
网络协议 Shell Linux
【Linux】shell编程基础(超详细,入门看这一篇就够了)(下)
【Linux】shell编程基础(超详细,入门看这一篇就够了)(下)
82 0
|
2月前
|
存储 Shell C语言
shell脚本 编程 变量 基本入门(详解)
shell脚本 编程 变量 基本入门(详解)