Linux bc 命令简单学习

1. bash里面能够实现比较简单的四则运算

echo $((10*20))

注意是 双括号+ $ 地址符号. 

2. 但是比较复杂的 可能就难以为继了 比如不支持精度 

3. 所以这里面需要使用 bc 命令来执行相关的操作. 

man 内容:

usage: bc [options] [file ...]
-h --help print this usage and exit
-i --interactive force interactive mode
-l --mathlib use the predefined math routines
-q --quiet don't print initial banner
-s --standard non-standard bc constructs are errors
-w --warn warn about non-standard bc constructs
-v --version print version information and exit

4. 实现简单的 测试:

使用 bc -l 进入 计算界面:

比如我输入的 sqrt(100) 就是计算100 的平方根了

但是我没找到怎么去立方根

还可以计算 自然对数

比如:

l(10) 表示 以 e为底 10 的对数
e(10) 表示 e 的10次方...

5. 但是这样计算可能不太方便 也可以使用 管道命令执行相应的操作:

求直接三角形的 第三条边的长度.

echo "ibase=10,obase=2,254" |bc -l -q

 

6. 或者是可以实现 进制的转换:

echo "ibase=10;obase=2;254" |bc -l -q

 

 7. 总结语法注意点:

每个参数 使用 分号 分隔 可以使用 管道 也可以不使用管道. 

 

8. 数学函数

   MATH LIBRARYIf bc is invoked with the -l option, a math library is preloaded and the default scale is set to 20.   The math functions will calculate their results to the scale set at the time of their call.  The math library defines the following functions:s (x)  The sine of x, x is in radians.c (x)  The cosine of x, x is in radians.a (x)  The arctangent of x, arctangent returns radians.l (x)  The natural logarithm of x.e (x)  The exponential function of raising e to the value x.j (n,x)The Bessel function of integer order n of x.

so 可以显示圆周率的 公式是 

echo "scale=10;a(1)*4" |bc -l -q

显示自然对数的公式

echo "scale=10;e(1)" |bc -l -q

 

转载于:https://www.cnblogs.com/jinanxiaolaohu/p/10637702.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/278054.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

深入理解AbstractQueuedSynchronizer(AQS)

1. AQS简介 在上一篇文章中我们对lock和AbstractQueuedSynchronizer(AQS)有了初步的认识。在同步组件的实现中,AQS是核心部分,同步组件的实现者通过使用AQS提供的模板方法实现同步组件语义,AQS则实现了对同步状态的管理,以及对阻塞…

终于收到HacktoberFest的奖品啦

去年10月份给微软repo提交了5个PR,达成了HacktoberFest 2018,今天终于收到了从美国到澳洲,飘洋过海,姗姗来迟的T-shirt,不过大小正好。算是新年礼物了,哈哈

三、SpringBoot-application.properties配置文件和application.yml配置文件

其实SpringBoot的配置文件有.properties和.yml两种形式,两种配置文件的效果类似,只不过是格式不同而已,孩儿们可以根据下面这几种张截图,通过对比端口号的配置,以及连接SQLServer数据库的配置的书写格式来自己体会两者…

Teams中的快捷键让沟通协作更加高效

使用Teams的快捷键可以帮助我们提高日常沟通协作的效率。 一、快捷键分类 1.常规2.导航3.聊天输入界面4.团队和会议 1.常规 功能桌面版本快捷键WebApp版本快捷键搜索CtrlECtrlE显示命令CtrlSlash (/)CtrlSlash (/)gotoCtrlGCtrlShiftG开始新聊天CtrlNAltN打开设置CtrlComma …

线程间的协作(2)——生产者与消费者模式

2019独角兽企业重金招聘Python工程师标准>>> 1.何为生产者与消费者 在线程世界里,生产者就是生产数据的线程,消费者就是消费数据的线程。 import java.util.concurrent.Executor; import java.util.concurrent.ExecutorService; import java.…

一位面试者提到直接调用vuex中mutations方法

简述是用this.$store.mutations.xxx(xx)方式调用,因从未见过此种调用方式,回来就搜索了一下,查询结果如下 首先前文: 获取 state 的方式有两种,分别是 this.$store.state.num 这种直接获取的方式,以及通过 …

从无到有到完善 - Teams抽奖机器人开发历程

我没有写博客有2,3个月了,好几个朋友来问我怎么不继续了。实际上这几个月我受到微软好友的鼓舞和鼓励,再加上今年2月1日有幸成为了微软中国区第一位Teams的MVP,所以决定不再停留于技术demo,而是使用微软最新的技术开发…

残差网络

作用:使得深层网络可以获得更好的性能,没有它,即使加深网络的层数无法直接获得性能的提升。 我的理解:1、使得低层的特征表示可以越层传递。 2、在反向传播时LOSS可以直接训练低层特征。 3、浅层网络的恒等映射,深层网…

js闭包

闭包(closure)是Javacript语言的一个难点,也是它的特色,很多高级应用都要依靠闭包实现。 一、变量的作用域 要理解闭包,首先必须理解Javascript特殊的变量作用域。 变量的作用域无非就是两种:全局变量和局部变量。 Javascript语言…

Teams的MessageExtension最新功能:Initiate actions

官方文档到目前为止对这个initiate action的说明比较简洁,由于没有一步步的截图和说明,从头到尾看一遍可能还在云里雾里。 我一步步摸索着走了一遍,发现这个initiate action的功能如此强大,不敢独享,所以写此博文&…

Java枚举根据key获取value

package com.utcip.crm.common.constants; import com.utcip.crm.common.base.process.ScheduleStatusEnum; /** * 合同变更存储mongodb 状态值 * author jingfangnan * */ public enum ConstractMongoStatus { NEW(3,"新增"), UPDATE(2,"修改"), D…

Selenium-基础操作

一、测试代码 Test public void test() { WebDriver driver new FirefoxDriver(); // 打开当前包中的index页面 driver.get("file:///D:/%E8%B5%B5%E6%AC%A2/Selenium/Selenium/src/com/html/index.html"); WaitSeconds(1000); // 清除用户输入 driver.findElement(…

开发针对特殊租户的Teams机器人

有些朋友问到,如果想要开发一个bot针对于Teams的某些租户,如何做?实际上微软的Teams的SDK早就提供了类似的功能。 如果你使用的是Javascript/Node.JS开发,使用session.message.sourceEvent.tenant.id 就可以知道当前消息来自于哪…

行业看点 | 英特尔成功开发超导量子计算芯片 推动产业加速发展

量子计算将会成为下一次技术革命的核心,你可能认为它还很遥远,实际上量子计算会比预料的来得早。近期,英特尔在量子芯片方面取得突破,让量子计算朝着现实前进了一大步。 继IBM公司发布了自主量子处理器,谷歌着手研究基…

Teams App抽奖机器人 - 基础架构

今天我们来聊一下,一个Teams app的infrastructure,我在考虑LuckyDraw的主要出于这么几个出发点: 可管理性。因为这是一个个人产品,以后维护工作也只有我一个人,所以我希望整个infrastructure简单、易管理,不…

Teams Bot的ServiceLevel测试

每一个Teams bot实际上就是一个web api服务,这个服务通过Bot Framework和Teams进行通讯,所以对于Teams app的测试就是对于一个api service的测试。 软件行业发展到如今,测试技术已经趋于成熟。单元测试,冒烟测试,整合…

BZOJ1016:[JSOI2008]最小生成树计数——题解

https://www.lydsy.com/JudgeOnline/problem.php?id1016 现在给出了一个简单无向加权图。你不满足于求出这个图的最小生成树,而希望知道这个图中有多少个不同的最小生成树。(如果两颗最小生成树中至少有一条边不同,则这两个最小生成树就是不…

如何做Teams Bot的测试覆盖

在我昨天的文章中介绍了如果对Teams bot做service level的测试,那到底要写多少的测试代码才算够?如何才算测试到位了?这个时候我们就需要用”测试覆盖率”来衡量,虽然覆盖率高并不一定代表着就可以高枕无忧的以为我们软件质量高了…

Spring Boot开发MongoDB应用实践

本文继续上一篇定时任务中提到的邮件服务,简单讲解Spring Boot中如何使用MongoDB进行应用开发。 上文中提到的这个简易邮件系统大致设计思路如下: 1、发送邮件支持同步和异步发送两种 2、邮件使用MongDB进行持久化保存 3、异步发送,直接将邮件…

Teams Bot如何做全球化

Office365在全球有大量的用户,可以说是拥有最多用户的商业SaaS平台。Teams最近在发展迅猛,有1300万日活用户,已经超越了Slack。? Microsoft Teams overtakes Slack with 13 million daily users 我在设计Teams LuckyDraw bot的时候就希望我…