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

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. 微信小程序 + wepy快速开发

    wepy官网:https://tencent.github.io/wepy/document.html,想要了解全面最好去官网,以下只是指出项目里常用地方. 1.页面跳转 (1)//有返回跳转wepy ...

  2. Ethical Hacking - GAINING ACCESS(20)

    CLIENT SIDE ATTACKS - Spoofing backdoor extension Change the extension of the trojan from exe to a s ...

  3. javascript : 复杂数据结构拷贝实验

    数组深拷贝看起来很简单. array.concat()就行了. 但是,如果数组里有对象呢? 实际上,你以为你拷贝了对象,但实际上你只拷贝了对象的引用(指针)! 我们可以做个试验. // test le ...

  4. 想进大厂?字节跳动等独角兽公司都在招募Python工程师!(Python就是第一语言)

    在本文章中,作者通过自身经历,力求客观的谈谈个人选择学习Python的动机,以及独角兽公司对Python工程师的要求及薪资. 从目前各种迹象(企业招聘,语言排名等)看来Python相对Java应该是暂 ...

  5. humlbe bundle如何绑定二次验证码_虚拟MFA_两步验证_谷歌身份验证器?

    一般点账户名——设置——安全设置中开通虚拟MFA两步验证 具体步骤见链接 humlbe bundle如何绑定二次验证码_虚拟MFA_两步验证_谷歌身份验证器? 二次验证码小程序于谷歌身份验证器APP的 ...

  6. 分布式锁(2) ----- 基于redis的分布式锁

    分布式锁系列文章 分布式锁(1) ----- 介绍和基于数据库的分布式锁 分布式锁(2) ----- 基于redis的分布式锁 分布式锁(3) ----- 基于zookeeper的分布式锁 代码:ht ...

  7. 还不懂mysql的undo log和mvcc?算我输!

    最近一直没啥时间写点东西,坚持分享真的好难,也不知道该分享点啥,正好有人要问我这些东西,所以腾出点时间,写一下这个主题.同样本篇可以给读者承诺,听不懂或者没收获算我输,哈哈! 众所周知,mysql中读 ...

  8. 深度学习论文翻译解析(十一):OverFeat: Integrated Recognition, Localization and Detection using Convolutional Networks

    论文标题:OverFeat: Integrated Recognition, Localization and Detection using Convolutional Networks 标题翻译: ...

  9. springboot 使用 dev tool 导致 CastException

    1.背景 项目使用了 Spring + shiro 实现 权限控制, 使用AOP 对 每个 Controller 进行 log 记录时,需要从 shiro 中 获取 username字段, 问题就这样 ...

  10. matplotlib基础汇总_04

    3D图形 导包 import numpy as np import matplotlib.pyplot as plt #3d图形必须的 from mpl_toolkits.mplot3d.axes3d ...