说起电脑上的计算器,可能所有人的印象都是这样的

windows的计算器有界面当然很酷,但是如果我们在黑黑的linux下面该怎么办呢?

不用急,在linux下面也有一款非常棒的计算器:bc。bc是一款linux下的一款小工具,我们在linux下输入:man bc,看一下简单的介绍:

bc居然是一款任意精度的计算器“语言”,看来bc真的很强大。那我们开始安装下bc工具吧。

一、安装

centos

yum -y install bc

ubuntu

apt install bc

二、交互式

例子1:输入bc,默认进入交互式

如果我们要退出,就输入quit,然后回车

例子2:我们算一个小学生的1+1等于2的问题

输入1+1,然后回车。

例子3:进行除法运算

输入4/3,然后回车。

例子4:保留两位小数

4除以3直接被取整了,如果我们想要保留两位小数怎么办?看下面的例子:

这里输入scale=2,即表示保留两位小数。

交互式一般用于我们手工计算表达式,那么对于编程而言,我们该如何善用bc呢?

三、bc与shell脚本

shell脚本的执行都是非交互式的,即执行完全是自动在跑的,无须交互过程。此种场景下,一般有两种方式使用bc:

1. 通过管道使用 bc

如果你想要直接计算一个表达式,可以这么写:

echo "expression" | bc

expression就是计算的数学表达式,比如上面例子中的1+1,4/3,当然,这里也可以使用shell变量,如下是几个小例子:

例子1:

#计算1+2的结果

echo "1+2" | bc

例子2:

#计算4/3,保留两位小数的结果

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

例子3:

#使用shell变量,例子中输出5

a=3;b=2;echo "$a+$b" | bc

2. 通过shell赋值变量

我们也可以把结果赋值给一个变量

var=$(echo "expression" | bc)

这样var就可以直接保存计算后的结果

例子4:

#获取计算结果,并赋值给var

var=$("scale=2;4/3" | bc)

#打印变量的值 echo $var

说起电脑上的计算器,可能所有人的印象都是这样的

windows的计算器有界面当然很酷,但是如果我们在黑黑的linux下面该怎么办呢?

不用急,在linux下面也有一款非常棒的计算器:bc。bc是一款linux下的一款小工具,我们在linux下输入:man bc,看一下简单的介绍:

bc居然是一款任意精度的计算器“语言”,看来bc真的很强大。那我们开始安装下bc工具吧。

一、安装

centos

yum -y install bc

ubuntu

apt install bc

二、交互式

例子1:输入bc,默认进入交互式

如果我们要退出,就输入quit,然后回车

例子2:我们算一个小学生的1+1等于2的问题

输入1+1,然后回车。

转存失败重新上传取消

例子3:进行除法运算

输入4/3,然后回车。

转存失败重新上传取消

例子4:保留两位小数

4除以3直接被取整了,如果我们想要保留两位小数怎么办?看下面的例子:

这里输入scale=2,即表示保留两位小数。

转存失败重新上传取消

交互式一般用于我们手工计算表达式,那么对于编程而言,我们该如何善用bc呢?

三、bc与shell脚本

shell脚本的执行都是非交互式的,即执行完全是自动在跑的,无须交互过程。此种场景下,一般有两种方式使用bc:

1. 通过管道使用 bc

如果你想要直接计算一个表达式,可以这么写:

echo "expression" | bc

expression就是计算的数学表达式,比如上面例子中的1+1,4/3,当然,这里也可以使用shell变量,如下是几个小例子:

例子1:

#计算1+2的结果

echo "1+2" | bc

例子2:

#计算4/3,保留两位小数的结果

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

例子3:

#使用shell变量,例子中输出5

a=3;b=2;echo "$a+$b" | bc

2. 通过shell赋值变量

我们也可以把结果赋值给一个变量

var=$(echo "expression" | bc)

这样var就可以直接保存计算后的结果

例子4:

#获取计算结果,并赋值给var

var=$("scale=2;4/3" | bc)

#打印变量的值

echo $var

《linux下的计算器:bc用法入门篇》的更多相关文章

  1. 简单物联网:外网访问内网路由器下树莓派Flask服务器

    最近做一个小东西,大概过程就是想在教室,宿舍控制实验室的一些设备. 已经在树莓上搭了一个轻量的flask服务器,在实验室的路由器下,任何设备都是可以访问的:但是有一些限制条件,比如我想在宿舍控制我种花 ...

  2. 利用ssh反向代理以及autossh实现从外网连接内网服务器

    前言 最近遇到这样一个问题,我在实验室架设了一台服务器,给师弟或者小伙伴练习Linux用,然后平时在实验室这边直接连接是没有问题的,都是内网嘛.但是回到宿舍问题出来了,使用校园网的童鞋还是能连接上,使 ...

  3. 外网访问内网Docker容器

    外网访问内网Docker容器 本地安装了Docker容器,只能在局域网内访问,怎样从外网也能访问本地Docker容器? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装并启动Docker容器 ...

  4. 外网访问内网SpringBoot

    外网访问内网SpringBoot 本地安装了SpringBoot,只能在局域网内访问,怎样从外网也能访问本地SpringBoot? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装Java 1 ...

  5. 外网访问内网Elasticsearch WEB

    外网访问内网Elasticsearch WEB 本地安装了Elasticsearch,只能在局域网内访问其WEB,怎样从外网也能访问本地Elasticsearch? 本文将介绍具体的实现步骤. 1. ...

  6. 怎样从外网访问内网Rails

    外网访问内网Rails 本地安装了Rails,只能在局域网内访问,怎样从外网也能访问本地Rails? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装并启动Rails 默认安装的Rails端口 ...

  7. 怎样从外网访问内网Memcached数据库

    外网访问内网Memcached数据库 本地安装了Memcached数据库,只能在局域网内访问,怎样从外网也能访问本地Memcached数据库? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装 ...

  8. 怎样从外网访问内网CouchDB数据库

    外网访问内网CouchDB数据库 本地安装了CouchDB数据库,只能在局域网内访问,怎样从外网也能访问本地CouchDB数据库? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装并启动Cou ...

  9. 怎样从外网访问内网DB2数据库

    外网访问内网DB2数据库 本地安装了DB2数据库,只能在局域网内访问,怎样从外网也能访问本地DB2数据库? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装并启动DB2数据库 默认安装的DB2 ...

  10. 怎样从外网访问内网OpenLDAP数据库

    外网访问内网OpenLDAP数据库 本地安装了OpenLDAP数据库,只能在局域网内访问,怎样从外网也能访问本地OpenLDAP数据库? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装并启动 ...

随机推荐

  1. bzoj3196Tyvj1730二逼平衡树

    bzoj3196Tyvj1730二逼平衡树 题意: 维护一个数列,操作:查询k在区间内的排名.查询区间内排名为k的值3.修改某一位上的数值.查询k在区间内的前驱(前驱定义为小于x,且最大的数).查询k ...

  2. 机器学习实战---决策树CART简介及分类树实现

    https://blog.csdn.net/weixin_43383558/article/details/84303339?utm_medium=distribute.pc_relevant_t0. ...

  3. CentOS7 64位下MySQL区分大小写

    在使用centos系统时,安装完MySQL数据库,创建完表之后,发现查询表操作时,是区分大小写的, 说以说在创建表之前,需要查看一下数据库是否区分大小写: 查看办法: lower_case_table ...

  4. TLV通信协议

    基础 TLV协议是BER编码的一种,全称是Tag.length.value.该协议简单高效,能适用于各种通信场景,且具有良好的可扩展性.TLV协议的基本格式如下: 其中,Tag占2个字节,是报文的唯一 ...

  5. Arrays.sort() ----- DualPivotQuicksort

    Arrays.sort() ----- DualPivotQuicksort DualPivotQuicksort是Arrays.sort()对基本类型的排序算法,它不止使用了双轴快速排序,还使用了T ...

  6. DJANGO-天天生鲜项目从0到1-006-首页-内容展示

    本项目基于B站UP主‘神奇的老黄’的教学视频‘天天生鲜Django项目’,视频讲的非常好,推荐新手观看学习 https://www.bilibili.com/video/BV1vt41147K8?p= ...

  7. CMD运行JAVA出现“错误:编码GBK的不可映射字符”

    问题: 原因: 字符编码问题.由于java文件中有中文字符,而cmd在编译时解码默认使用GBK,所以导致无法解码出正确的中文字符. 解决办法: 使用-encoding指令指定运行编码为UTF-8.

  8. shell 中的${},##, %% , :- ,:+, ? 的使用

    假设我们定义了一个变量为:file=/dir1/dir2/dir3/my.file.txt 可以用${ }分别替换得到不同的值:${file#*/}:删掉第一个/ 及其左边的字符串:dir1/dir2 ...

  9. Android中Activity的启动模式和使用场景

    一.为什么需要启动模式 在Android开发中,我们都知道,在默认的情况下,如果我们启动的是同一个Activity的话,系统会创建多个实例并把它们一一放入任务栈中.当我们点击返回(back)键,这些A ...

  10. Servlet学习之Tomcat secretRequired配置报错问题

    Tomcat secretRequired配置问题 在启动Tomcat时,控制台可能会出现IllegalArgumentException异常,即"AJP连接器配置secretRequire ...