《linux下的计算器:bc用法入门篇》
说起电脑上的计算器,可能所有人的印象都是这样的:

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用法入门篇》的更多相关文章
- 简单物联网:外网访问内网路由器下树莓派Flask服务器
最近做一个小东西,大概过程就是想在教室,宿舍控制实验室的一些设备. 已经在树莓上搭了一个轻量的flask服务器,在实验室的路由器下,任何设备都是可以访问的:但是有一些限制条件,比如我想在宿舍控制我种花 ...
- 利用ssh反向代理以及autossh实现从外网连接内网服务器
前言 最近遇到这样一个问题,我在实验室架设了一台服务器,给师弟或者小伙伴练习Linux用,然后平时在实验室这边直接连接是没有问题的,都是内网嘛.但是回到宿舍问题出来了,使用校园网的童鞋还是能连接上,使 ...
- 外网访问内网Docker容器
外网访问内网Docker容器 本地安装了Docker容器,只能在局域网内访问,怎样从外网也能访问本地Docker容器? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装并启动Docker容器 ...
- 外网访问内网SpringBoot
外网访问内网SpringBoot 本地安装了SpringBoot,只能在局域网内访问,怎样从外网也能访问本地SpringBoot? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装Java 1 ...
- 外网访问内网Elasticsearch WEB
外网访问内网Elasticsearch WEB 本地安装了Elasticsearch,只能在局域网内访问其WEB,怎样从外网也能访问本地Elasticsearch? 本文将介绍具体的实现步骤. 1. ...
- 怎样从外网访问内网Rails
外网访问内网Rails 本地安装了Rails,只能在局域网内访问,怎样从外网也能访问本地Rails? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装并启动Rails 默认安装的Rails端口 ...
- 怎样从外网访问内网Memcached数据库
外网访问内网Memcached数据库 本地安装了Memcached数据库,只能在局域网内访问,怎样从外网也能访问本地Memcached数据库? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装 ...
- 怎样从外网访问内网CouchDB数据库
外网访问内网CouchDB数据库 本地安装了CouchDB数据库,只能在局域网内访问,怎样从外网也能访问本地CouchDB数据库? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装并启动Cou ...
- 怎样从外网访问内网DB2数据库
外网访问内网DB2数据库 本地安装了DB2数据库,只能在局域网内访问,怎样从外网也能访问本地DB2数据库? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装并启动DB2数据库 默认安装的DB2 ...
- 怎样从外网访问内网OpenLDAP数据库
外网访问内网OpenLDAP数据库 本地安装了OpenLDAP数据库,只能在局域网内访问,怎样从外网也能访问本地OpenLDAP数据库? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装并启动 ...
随机推荐
- Apache Hudi重磅特性解读之存量表高效迁移机制
1. 摘要 随着Apache Hudi变得越来越流行,一个挑战就是用户如何将存量的历史表迁移到Apache Hudi,Apache Hudi维护了记录级别的元数据以便提供upserts和增量拉取的核心 ...
- 深入浅出ReentrantLock源码解析
ReentrantLock不但是可重入锁,而且还是公平或非公平锁,在工作中会经常使用到,将自己对这两种锁的理解记录下来,希望对大家有帮助. 前提条件 在理解ReentrantLock时需要具备一些基本 ...
- Reface.AppStarter 基本示例
Reface.AppStarter 向应用层提供以下几项 核心 功能 以模块化组织你的应用程序 自动注册组件至 IOC 容器 自动映射配置文件至配置类 在模块定义类中额外追加组件至 IOC 容器 在模 ...
- 基于python的自动化测试简介【十年从业大佬】
一.自动化测试包括以下几个方面: 1. 常用测试工具: (1)QTP:主要用于回归测试和测试同一软件的新版本 (2)Robot Framwork:python编写的功能自动化测试框架,具有良好的可扩展 ...
- 机器学习作业---K-Means算法
--------------------------K-Means算法使用-------------------------- 一:数据导入及可视化 import numpy as np import ...
- 17 个 Python 特别实用的操作技巧,记得收藏!
Python 是一门非常优美的语言,其简洁易用令人不得不感概人生苦短.在本文中,作者 Gautham Santhosh 带我们回顾了 17 个非常有用的 Python 技巧,例如查找.分割和合并列表等 ...
- Vue使用定时器定时刷新页面
1. 需求说明 在前端开发中,往往会遇到页面需要实时刷新数据的情况,给用户最新的数据展示. 2. 逻辑分析 如果需要数据实时更新,我们自然是需要使用定时器,不断的调用接口数据,会相对的消耗内存. 3. ...
- coding如何绑定二次验证码_虚拟MFA_两步验证_身份验证?
Coding.net 是一个面向开发者的云端开发平台,提供 Git/SVN 代码托管.任务管理.在线 WebIDE.Cloud Studio.开发协作.文件管理.Wiki 管理.提供个人服务及企业管理 ...
- adb连接多个设备时,选择某个设备
在emulator-5554模拟器上安装ebook.apk: adb -s emulator-5554 install ebook.apk 在真机上安装ebook.apk: adb -s HT9BYL ...
- zabbix监控4.4升级至5.0
1. ZABBIX备份 [root@iZ2zeapnvuohe8p14289u6Z /]# mkdir -p /soft/zabbixback/zabbix-backup [root@iZ2zeapn ...
转存失败