Linux(Centos 7.6)命令详解:bc

1.命令作用

任意精度的计算器语言(An arbitrary precision calculator language);bc 是一种支持任意精度数字并能交互执行语句的语言;其语法与 C 编程语言有一些相似之处;通过命令行选项可以使用标准数学库。

2.命令语法

Usage: bc [options] [file ...]

3.参数详解

OPTION:

  • -h  --help,打印此用法并退出
  • -i  --interactive,强制交互模式
  • -l  --mathlib,使用标准数学库;如使用内置函数就需要该参数
  • -q  --quiet,不要打印初始的软件版本版权等信息
  • -s  --standard,对非标准BC结构视为错误
  • -w  --warn,对非标准bc结构发出警告
  • -v  --version,打印版本信息并退出

数字属性:

  • 长度
  • 精度
    • .000001 的长度为 6,精度为 6
    • 1935.000 的长度为 7,精度为 3

常用运算符:

  • 加(+)、减(-)、乘(*)、除(/)、取余(%)、指数(^)

四个特殊变量:

  • scale,定义了某些运算中小数点后数字的使用方式,默认值为0
  • ibase,定义了输入数字的转换基数,默认值为10进制
  • obase,定义了输出数字的转换基数,默认值为10进制
  • last,last(一个扩展变量)是一个变量,其值为最后打印的数字

函数(需要加-l参数):

  • s (x),sine正弦函数(x是弧度)
  • c (x),cosine余弦函数(x是弧度)
  • a (x),arctangent反正切函数(结构返回弧度)
  • l (x),logarithm 自然对数函数 
  • e (x),e的x次方的指数函数
  • j (n,x),整数阶n(x)的贝塞尔函数

特殊表达式:

  • length(3.5),取长度,小数点不计,整数部分前的0不计 
  • scale(3.5),取小数点后位数
  • sqrt(9),取根号

4.常用用例

4.1.交互模式执行

4.1.1.简单运算

# 直接后前4行是软件版本,版权,免费等信息;可以指定-q参数不输出该部分信息
# 交互模式需要Ctrl+c退出
[root@node4 ~]# bc 
bc 1.06.95
Copyright 1991-1994, 1997, 1998, 2000, 2004, 2006 Free Software Foundation, Inc.
This is free software with ABSOLUTELY NO WARRANTY.
For details type `warranty'. 

1+1              # 简单加法运算
2
3-2              # 简单减法运算
1
3*4              # 简单乘法运算
12
10/5             # 简单除法运算
2
11%2             # 简单取余运算
1
2^3              # 简单指数运算
8
5/3              # 计算有小数位的,默认无小数位,即scale=0
1
scale=2; 5/3     # 指定小数位保留2位数值
1.66

4.1.2.函数运算

[root@node4 ~]# bc -q            # 指定-q不输出软件版本版权等信息
s(60)                            # 函数运算报错,需要添加-l参数
Runtime error (func=(main), adr=6): Function s not defined.
^C
(interrupt) Exiting bc.
[root@node4 ~]# bc -q -l         # 添加-l参数后,函数运算正常运行
s(60)
-.30481062110221670562

4.2.非交互式执行

4.2.1.将字符串传递给bc执行

1.使用echo向bc传递计算字符串
echo "5 + 3 * 2" | bc                   # 简单计算
echo "scale=2; 5/3" | bc -s             # 保留两位小数
echo "obase=16; 255" | bc               # 10进制转16进制
echo "ibase=2; obase=10; 1101" | bc     # 2进制转10进制
echo "s(3.1415/2)" | bc -l              # 正弦计算

2.使用变量
a=5; b=7
echo "$a * $b + 2" | bc

3.使用<<<给bc传递字符串
bc -w <<< "scale=3; 10/3"

4.2.2.读取文件字符计算

[root@node4 ~]# cat t.txt        # 定义文件内容
3.14 * 5
scale=2; sqrt(100)
[root@node4 ~]# bc -q t.txt      # 指定文件执行,执行后是交互模式,需要Ctrl+c退出
15.70
10.00
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

豆是浪个

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值