Li ux shell 四则运算

一、整数的四则运算

(1)使用let 表达式, 变量前不需要加‘$‘

        let sum=num1+num2

(2)$[表达式], 变量前既可以加$, 也可以不加$

        sum=$[num1 + num2]
        sum2=$[$num1 - 5]
        sum3=$[num1 + 3]

(3)$((表达式)), 变量前既可以加$, 也可以不加$

        result=$(($num1 + num2 - 5))

(4)expr, 使用‘`’字符将表达式阔起来,或则使用$(expr 表达式), 操作数和操作符必须用空格分割

        result=`expr $num \* 4` #乘法 * 需要转义
        result2=$(expr $num / 3)

二、浮点数的四则运算

bc是一个数学运算的高级工具,使用分号作为定界符,通过stdin传递给bc。

        (1)设置小数精度

通过设置scale的值,指定结果的小数位数

       $  echo "scale=2;4/3" | bc
       $  1.33

        (2)进制转换

通过设置obase的值,将输入数字转换为obase设置的值的进制数

        $ echo "obase=2;3" | bc #转换为二进制   
        $ 11                
        $ echo "obase=8;3" | bc #转换为八进制                
        $ 3                
        $ echo "obase=8;9" | bc #转换为八进制                
        $ 11    
        $ echo "obase=16;10" | bc #转换为十六进制                
        $ A

        (3)一些高级应用

        $ echo "sqrt(16)"   | bc
        $ 4
        $ echo "10 ^ 2" | bc     
        $ 100

三、例子

    #!/bin/bash    
    
    num1=3
    num2=5
    
    #使用let时,变量前不需要加 $ 
    let sum=num1+num2
    echo "$num1 + $num2 = $sum"
    
    let num1++  #自增
    let num2--  #自减
    echo "num1=$num1, num2=$num2"
    
    let num1+=5  #复合运算
    let num2-=2
    echo "num1=$num1, num2=$num2"
    
    
    #使用  $[表达式] 进行计算
    div=$[num1 / num2]
    echo "$num1 / $num2 = $div"
    
    sss=$[num1 + num2]
    echo "$num1 + $num2 = $sss"
    
    num3=$[num1 - 3]
    echo "num3=$num3"
    
    #使用 $((表达式)), 其中表达式中的变量可以用$,也可以不使用$
    num4=$(($num1 + num2 - num3 + 4))
    echo "num4=$num4"
    
    #使用 expr 进行计算, 操作数和操作符必须要空格隔开
    num5=`expr $num1 + $num3`
    echo "num5=$num5"
    num6=`expr $num2+$num4`
    echo "num6=$num6" #由于操作数和操作符没有隔开,变成了一个字符串,并没有计算
    
    result=`expr $num1 \* 4` #乘法 * 需要转义
    echo "result=$result"
    
    result2=$(expr $num2 / 3)
    echo "result2=$result2"
    #以上都只能进行整数的计算,不能对浮点数进行操作

结果:

3 + 5 = 8
            num1=4, num2=4
            num1=9, num2=2
            9 / 2 = 4
            9 + 2 = 11
            num3=6
            num4=9
            num5=15
            num6=2+9 #这个即为操作数和操作符没有隔开的结果
            result=36
            result2=0

时间: 2024-10-11 17:04:19

Li ux shell 四则运算的相关文章

用户和组群账户管理

用户账号简介 用户账号是登录系统的唯一凭证,其中root用户是系统的最高管理者,该用户的UID是0,与用户和组群账户相关的配置文件有 /etc/passwd /etc/shadow /etc/group /etc/gshadow 用户账户分类 root用户 用户角色通过UID标识 root用户UID=0,拥有最高权限,也称为超级管理员.拥有超越所有用户和组群,对文件或目录进行读取.修改和删除(在系统正常许可范围内):可以控制对可执行程序的执行和终止:可以对硬件设备执行添加.创建和移除等操作:也可

shell实现四则运算简单方法

在刚刚学习写shell 批处理时候,进行逻辑运算中,少不了需要进行基础的:四则运算,这里说说在linux shell 里面简单的实现方法.1.简单方法$ b=$((5*5+5-3/2)) $ echo $b29 在linux shell中,我们可以使用 $(()) 将表达式放在括号中,即可达到运算的功能.2.其它方法:用:expr 实现运算$ expr 5 - 41 注意:将需要运算的表达式写入在expr 后面即可,保证 参数与运算符号中间有空格隔开. 类别 语法 说明 条件判断 expr1 \

shell发送网页邮件

部分IP打码 请谅解~ 邮件发送格式 :    echo "cat html"|mail -s "$(echo -e "check node number Content-Type:text/html;charset=utf-8")" -r "grouplist_node_check" [email protected]由mail -s指定发送的内容为html类型. 内容模板 (建议在Dreamweaver.PyCharm等工

shell编程中for,while,util,case,select,break, continue用法详解

关于shell脚本的更多详细实例讲解请参考:http://www.cnblogs.com/yuexiaxiaoxi/category/646749.html Shell编程中循环命令用于特定条件下决定某些语句重复执行的控制方式,有三种常用的循环语句:for.while和until.while循环和for循环属于"当型循环",而until属于"直到型循环".循环控制符:break和continue控制流程转向. 参考:<Linux 与unix shell 编程指

书写优雅的shell脚本(五)- shell中(())双括号运算符

在使用shell的逻辑运算符"[]"使用时候,必须保证运算符与算数之间有空格. 四则运算也只能借助:let,expr等命令完成. 今天讲的双括号"(())"结构语句,就是对shell中算数及赋值运算的扩展. 1.语法: ((表达式1,表达式2-)) 2.特点: (1)在双括号结构中,所有表达式可以像c语言一样,如:a++,b--等. (2)在双括号结构中,所有变量可以不加入:"$"符号前缀. (3)双括号可以进行逻辑运算,四则运算 (4)双括号结

自动化运维—tomcat服务起停(mysql+shell+django+bootstrap+jquery)

项目简介: 项目介绍:自动化运维是未来的趋势,最近学了不少东西,正好通过这个小项目把这些学的东西串起来,练练手. 基础架构: 服务器端:web框架-Django 前端:html css jQuery bootstrap 脚本:shell 适用系统:redhat5.8/redhat6.6 平台已实现功能: 中间件和数据库软件的启停和状态检查 (tomcat,nginx,apache,oracle,mysql) 完整功能设计图: 效果图: 架构图(简要): 项目源码:https://github.c

shell变量

前面章节中曾经介绍过环境变量PATH,这个环境变量就是shell预设的一个变量,通常shell预设的变量都是大写的.变量,说简单点就是使用一个较简单的字符串来替代某些具有特殊意义的设定以及数据.就拿PATH来讲,这个PATH就代替了所有常用命令的绝对路径的设定.因为有了PATH这个变量,所以我们运行某个命令时不再去输入全局路径,直接敲命令名即可.你可以使用echo命令显示变量的值. [[email protected] ~]# echo $PATH /usr/local/sbin:/usr/lo

java程序执行,调用shell命令和shell脚本

  坑呀!记得在start()之后, waitFor()之前把缓冲区读出来打log,否则是阻塞缓冲区,没有输出的 package com.jikexueyuancrm.util; import java.io.BufferedReader; import java.io.DataOutputStream; import java.io.IOException; import java.io.InputStreamReader; import java.io.PrintWriter; import

shell学习

我的自学shell过程,中间参考过鸟哥,马哥,老男孩等各方的学习方法和过程! shell shell编程之变量 语言转换的设备或软件:编译器,解释器 编程语言:机器语言.汇编语言.高级语言 高级语言: 静态语言:编译型语言 有开发环境,不需要借助额外的二进制程序,写完代码后,通过编译器直接转换成二进制后再独立执行 特征:强类型(变量) 事先转换成可执行格式 语言类型:C.C++.JAVA.C# 动态语言:解释型语言 特征:弱类型 边解释边执行 语言类型:PHP.SHELL.Python.perl