精华内容
下载资源
问答
  • bc命令
    2019-11-22 15:45:09

    1.命令简介

    bc(Binary Calculator)命令用于任意精度的计算,语法类似于 C 语言。Bash 内置了对整数四则运算的支持,但是并不支持浮点运算,而 bc 命令可以很方便地进行浮点运算和整数运算。

    本文描述的 GNU 版本超出了传统 bc 的实现和 POSIX 标准。在使用扩展功能时,可以使用命令行选项打印警告或拒绝使用。

    2.命令格式

    bc [-hlwsqv] [long-options] [<file>...]
    

    3.选项说明

    -h, --help
    	显示帮助信息并退出
    -i, --interactive
    	强制进入交互式模式
    -l, --mathlib
    	定义使用的标准数学库
    -w, --warn
    	对 POSIX bc 的扩展给出警告信息
    -s, --standard
    	完全使用 POSIX 版本的 bc 功能
    -q, --quiet
    	不打印正常的 GNU bc 环境信息
    -v, --version
    	打印 bc 版本与版权后退出
    

    4.特殊变量

    bc 在运算过程中将数值存储在两种类型的变量中,简单变量和数组。两种变量均使用字母开头后跟字母、数字或下划线的命名方式且全部小写。其中有四个特殊变量:

    scale	定义某些操作如何使用小数点后的数字,默认值为 0
    ibase	定义输入数的基数,默认为十进制数
    obase	定义输出数的基数,默认为十进制数
    last	表示最后的输出值
    

    5.注释

    bc 中的块注释使用/* */,行注释使用 #。

    6.表达式

    表达式的输入值可以是 2 到 16 进制的数值,数值的基数由特殊变量 ibase 决定。如果数值中包含字符 A-F,则必须使用大写,因为小写表示变量名。

    在下面表达式的描述中,EXPR 指完整表达式,VAR 指简单变量或数组变量。简单变量只是一个名称,数组变量被指定为 NAME[EXPR]。

    除非特别提到,结果的精度是表达式中最大的精度。

    基本运算:
    - EXPR
    	相反数
    ++ VAR
    	自增 1
    -- VAR
    	自减 1
    VAR ++
    	表达式的结果是变量的值,然后变量自增 1
    VAR --
    	表达式的结果是变量的值,然后变量自增 1
    EXPR + EXPR
    	两个表达式相加
    EXPR - EXPR
    	两个表达式相减
    EXPR * EXPR
    	两个表达式相乘
    EXPR / EXPR
    	两个表达式相除。结果的精度由特殊变量 scale 确定
    EXPR % EXPR
    	两个表达式取余
    EXPR ^ EXPR
    	取幂。第二个表达式 EXPR 必须是整数
    ( EXPR )
    	这将更改标准优先级以强制执行表达式的计算
    VAR = EXPR
    	将表达式的结果赋给变量 VAR
    VAR <OP>= EXPR
    	这相当于 var = var EXPR
    
    关系运算:
    EXPR1 < EXPR2
    EXPR1 <= EXPR2
    EXPR1 > EXPR2
    EXPR1 >= EXPR2
    EXPR1 == EXPR2
    EXPR1 != EXPR2
    
    逻辑运算:
    !EXPR
    EXPR && EXPR
    EXPR || EXPR
    

    以上表达式涉及的运算符优先级由低到高依次为:

    ||			左结合
    &&			左结合
    !			非结合的
    关系运算符	左结合
    赋值运算符	由结合
    +, -		左结合
    *, /, %		左结合
    ^			右结合
    取反运算符	非结合的
    ++, --		非结合的
    

    以上运算符优先级与 C 语言有些出入,使用时需要注意。比如表达式 a = 3 < 5 在 C 语言中 a 的值为 0,在 bc 中,因为 = 的优先级高于 <,所以 a 的值为 3。

    bc 中提供了一些特殊的表达式,这些与用户定义的函数和标准函数有关,下文函数一节将会详述。

    7.语句

    bc 的语句使用分号和换行符进行分隔,下面将介绍 bc 中常用的语句。注意,中括号 [] 中的内容是可选的。

    EXPRESSION
    	表达式分为赋值表达式与非赋值表达式,如果表达式不是赋值语句,则计算表达式并将其结果打印到输出
    STRING
    	使用双引号包围的内容被视为字符串。字符串可以包含特殊字符,使用反斜杠表示,\a 响铃,\b 退格,\f 换页,\n 换行,\r 回车,\q 双引号,\t 制表符,\\ 反斜杠
    print LIST
    	使用 print 语句进行输出。LIST 是逗号分隔的字符串或者表达式
    { STATEMENT_LIST }
    	这是个复合语句,它允许将多个语句组合在一起执行
    if ( EXPRESSION ) STATEMENT1 [else STATEMENT2]
    	if 条件语句。如果表达式 EXPRESSION 结果非 0,则执行语句 STATEMENT1,否则执行 STATEMENT2
    while ( EXPRESSION ) STATEMENT
    	while 循环语句。如果表达式 EXPRESSION 结果非 0,则循环执行语句
    for ( [EXPRESSION1] ; [EXPRESSION2] ; [EXPRESSION3] ) STATEMENT
    	for 循环语句
    break
    	用于退出最近一层的 while 或 for 循环
    continue
    	用于最近一层的 while 或 for 循环提前进入下一轮循环
    halt
    	结束 bc
    return
    	从函数中返回 0
    return ( EXPRESSION )
    	从函数返回表达式 EXPRESSION 的值
    limits
    	打印 bc 的限制
    quit
    	结束 bc
    warranty
    	打印授权注意事项
    

    8.函数

    bc 支持函数,定义形式如下:

    define [void] NAME ( PARAMETERS ) {
    	AUTO_LIST   STATEMENT_LIST }
    

    其中 关键字 void 表示函数无返回值,NAME 为函数名,PARAMETERS 为函数参数,AUTO_LIST 为函数内部使用 auto 关键字申明的局部变量,STATEMENT_LIST 为函数 bc 语句。

    函数调用形式:

    NAME(PARAMETERS)
    

    常用的内置函数有:

    length ( EXPRESSION )
    	数值的有效数字的个数
    read ()
    	从标准输入读取输入
    scale ( EXPRESSION )
    	数值小数点后的数字的个数
    sqrt ( EXPRESSION )
    	求平方根。如果 EXPRESSION 是一个负数,则引发运行时错误
    

    如果使用 -l 选项调用 bc,则会预加载一个数学库,并将默认精度设置为 20。数学库定义了以下函数:

    s (x)
    	求正弦值 sin(x),x 的单位是弧度
    c (x)
    	求余弦值 cos(),x 的单位是弧度
    a (x)
    	x 的反正切,反正切返回弧度
    l (x)
    	x 的自然对数
    e (x)
    	指数函数,求自然 e 的 x 次幂
    j (n,x)
    	x 的整数阶 n 的贝塞尔函数
    

    9.常用示例

    (1)执行浮点运算。

    echo "3.141592653 * 3" | bc
    9.424777959
    

    (2)指定计算结果的精度。

    echo "scale = 2; 3.0/8" | bc
    .37
    
    # 输出小数点前的 0
    echo 'scale = 2; a = 3.0/8; if (length(a) == scale(a)) print 0; print a,"\n"' | bc
    0.37
    

    (3)进制转换。如将二进制转换为十进制。

    echo "obase=10;ibase=2;00001111" | bc
    15
    

    (4)幂运算。

    echo "9^2" | bc
    81
    

    (5)调用内置函数 sqrt() 计算平方根。

    echo "sqrt(16)" | bc
    4
    

    (6)交互式进行数学运算。

    bc
    9+9
    18
    9*9
    81
    sqrt(81)
    9
    quit
    

    参考文献

    bc(1p) manual
    bc - GNU Project - Free Software Foundation
    【Linux】一步一步学Linux——bc命令(233)

    更多相关内容
  • bc命令 浮点运算

    2021-01-09 19:49:13
    bash内置了对整数四则运算的支持,但是并不支持浮点运算,而bc命令可以很方便的进行浮点运算,当然整数运算也不再话下。 语法格式:bc [选项] 常用参数: -i 强制进入交互式模式 -l 定义使用的标准数学库 -...
  • Linux bc 命令用法详解

    2021-01-09 21:15:24
    Linux bc 命令 bc 命令是任意精度计算器语言,通常在linux下当计算器用。 它类似基本的计算器, 使用这个计算器可以做基本的数学运算。 常用的运算: + 加法 – 减法 * 乘法 / 除法 ^ 指数 % 余数 语法 bc(选项)...
  • Linux命令之bc命令

    千次阅读 2021-11-19 16:00:11
    一、命令简介   bc是一种支持任意精度...如果文件中包含停止处理器的命令bc将永远不会从标准输入中读取。支持的运算包括: + 加法 - 减法 * 乘法 / 除法 ^ 指数 % 余数 二、使用示例 1、安装命令 [root@s141 ~]#

    一、命令简介

      bc是一种支持任意精度数字的语言,支持语句的交互式执行。在语法上与C编程语言有一些相似之处。通过命令行选项可以使用标准数学库。如果需要,将在处理任何文件之前定义数学库。bc首先按照列出的顺序处理命令行上列出的所有文件中的代码。处理完所有文件后,bc从标准输入中读取。所有代码在读取时执行。如果文件中包含停止处理器的命令,bc将永远不会从标准输入中读取。支持的运算包括:

    • + 加法
    • - 减法
    • * 乘法
    • / 除法
    • ^ 指数
    • % 余数

    二、使用示例

    1、安装命令

    [root@s141 ~]# yum install -y bc
    [root@s141 ~]# which bc
    /usr/bin/bc

    2、查看版本

    [root@s141 ~]# bc -v
    bc 1.06.95
    Copyright 1991-1994, 1997, 1998, 2000, 2004, 2006 Free Software Foundation, Inc.

    3、获取帮助

    [root@s141 ~]# bc --help

    4、交互式执行计算

    在这里插入图片描述

    5、交互式时通过quit退出

    [root@s141 ~]# 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’.
    100-30
    70
    quit

    6、与管道符结合进行计算

    [root@s141 ~]# echo “sqrt(100)” |bc
    10
    [root@s141 ~]# echo “3^3” |bc
    27

    7、不要打印初始横幅提示信息

    [root@s141 ~]# bc -q
    100-40
    60
    quit

    8、计算文件中算式

    在这里插入图片描述

    9、进制转换

    #十进制转二进制
    [root@s141 ~]# echo “obase=2;254” |bc
    11111110
    #十进制转十六进制
    [root@s141 ~]# echo “obase=16;254” |bc
    FE
    #十进制转八进制
    [root@s141 ~]# echo “obase=8;254” |bc
    376
    #十六进制转10进制
    [root@s141 ~]# echo “obase=10;ibase=16;FF” |bc
    255
    #二进制转10进制
    [root@s141 ~]# echo “obase=10;ibase=2;1100” |bc
    12

    10、使用预定义数学例程

    #小数点后保留4位
    [root@s141 ~]# bc -q
    100 / 3
    33
    scale = 4
    100 /3
    33.3333
    quit
    [root@s141 ~]# echo “scale=4;100/3” |bc
    33.3333
    (base) [root@sun-site ~]# echo “scale=10; 4*a(1)” | bc -l
    3.1415926532

    11、使用last计算

    [root@s141 ~]# bc -q
    a=3
    b=4
    a+b
    7
    c=100
    c * last
    700
    quit

    三、参数说明

    1、使用语法

    用法:bc [参数] [文件]

    2、参数说明

    参数参数说明
    -h,–help打印此用法并退出
    -i,–interactive强制交互模式
    -l,–mathlib使用预定义的数学例程
    -q,–quiet不要打印初始横幅
    -s,–standard非标准bc构造是错误的
    -w,–warn警告非标准bc构造
    -v,–version打印版本信息并退出

    3、特殊变量说明

    • 1)浮点数精度变量,scale=10;设置之后的scale为10,默认为0(及整数除法会返回整数)
    • 2)进制变量,obase=16;ibase=16;设置输入和输出都为16进制,默认值为10
      注意:为10时可不设置ibaseobase的值,obase要尽量放在ibase前,因为ibase设置后,后面的数字都是以ibase的进制来换算的
      3)last,是指上一次返回出来的数字
      4)quit,退出计算
    展开全文
  • shell计算命令-bc命令详解

    千次阅读 2021-12-27 15:27:46
    bash shell内置了对整数运算的支持,但是并不支持浮点运算,而linux bc命令可以很方便的进行浮点运算,bc命令是linux简单的计算器,能进行进制转换与计算,能转换的进制包括十六进制、十进制、八进制、二进制,可以...

    bc中进行互动式的数学运算
    在shell中进行非互动式的bc管道运算
    在shell中非互动式的输入重定向bc运算

    bash shell内置了对整数运算的支持,但是并不支持浮点运算,而linux bc命令可以很方便的进行浮点运算,bc命令是linux简单的计算器,能进行进制转换与计算,能转换的进制包括十六进制、十进制、八进制、二进制,可以使用的运算符号包括±*/^%

    在这里插入图片描述
    参数:指定包含计算任务的文件
    大量的计算写起来比较长,把计算的表达式放到一个文件中,对文件进行计算
    在这里插入图片描述
    1.互动式的数学运算
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    在这里插入图片描述
    在这里插入图片描述

    在这里插入图片描述
    在这里插入图片描述

    作用:
    通常在linux下当计算器用,具体有三个用法
    1.bc中互动式的数学运算
    2.shell中进行非互动式的bc管道运算
    3.在shell中非互动式的输入重定向bc运算

    展开全文
  • V.1.1版
  • bc命令详解

    千次阅读 2019-02-16 17:38:00
    最近经常要在linux下做一些进制转换,看到了可以使用bc命令,如下: echo "obase=10;ibase=16;CFFF" | bc 用完以后就对bc进行了进一步的了解,man bc里面有详细的使用说明。 1.是什么,怎么用 bc...

      

    基础命令学习目录首页

     

    原文链接:https://www.cnblogs.com/lovevivi/p/4359296.html

    最近经常要在linux下做一些进制转换,看到了可以使用bc命令,如下:

    echo "obase=10;ibase=16;CFFF" | bc

    用完以后就对bc进行了进一步的了解, man bc里面有详细的使用说明。

     

    1.是什么,怎么用

    bc - An arbitrary precision calculator language   一个任意精度的计算器语言。

    从他的使用上来看,能够对计算公式的语法进行解释并返回出结果。有下面几种使用方式:

    1).交互式

    输入bc,进入交互式界面,然后输入3+1,回车后在下一行打印出了4

     

    2).echo+管道

    echo "3+1" | bc 返回4到屏幕上

    3).bc + 文件名

    bc "calc.txt"   进入bc交互式界面并自动返回文本内算式的结果

    当算术或者语法等出现错误时,程序会返回错误信息,如下:

    1/0
    Runtime error (func=(main), adr=3): Divide by zero

     

    2.选项  

    --help  -h 显示选项页

    --interactive -i 使用交互模式

    --mathlib  -l 执行指定语句前,先加载math函数库

    --warn  -w 对非POSIX的bc指令给出警告

    --standard  -s 启动POSIX模式下的bc程序

    --quiet  -q 不显示GNU bc 的欢迎
    --version  -v 显示版本信息

     

    3.数字、变量、表达式和注释

    3.1数字

      操作基本都是围绕数字,默认的输出输入进制都是十进制。数字有2个属性 长度(length)和小数点后精度(scale), length值数字有效数字的长度,scale是值小数点后的长度。

    如:0.001 length=3 scale=3

        45.78 length=4 scale=2

      关于数字,当使用十六进制时,英文ABCDEF必须大写,大于16进制的则都用XX的十进制数字代表一位,如C=12

     

    3.2 变量

      计算表达式的时候可以用变量,变量名为小写字母开头后面可以跟_,1,a。

    变量分两种:

    普通变量: a=4;a   返回4

    数组变量: a[1]=1;a[3]=3;a[1];a[2];a[3]  返回1 0 3

     

      另外有4个特殊的变量,他们有着特殊的意义,不能当做普通变量用,如下:

    1)scale=10; 设置之后的scale为10,默认为0(及整数除法会返回整数)

    2)obase=16;ibase=16; 设置输入和输出都为16进制,默认值为10

         注意:为10时可不设置ibase obase的值,obase要尽量放在ibase前,因为ibase设置后,后面的数字都是以ibase的进制来换算的

    3)last,是指上一次返回出来的数字

     

    3.3 表达式

      表达式跟C语言的都类似,主要就是

    1)运算类 + - * / % ++ -- ^等

    2)赋值类 = +=

    3)关系类 > <=  其中true则返回1,false返回0

    4)布尔类 && || 同上

    注: a = 3 < 5 ,C语言中a=false,而bc中a=3,然后返回3<5的结果1      故一般带赋值的算式后面尽量都要加括号来确保执行顺序

      几个特殊的表达式:

    length(3.5)   取length 

    scale(3.5)  取scale

    sqrt(9)   取根号

    read()  从标准输入读

     

    3.4 注释

    注释有两种:

    1)多行注释 /* */

    2)单行注释#

     

    4. 语句(statement) 和 函数

    4.1语句

    1+1

    2+2

    等价于1+1;2+2,都会返回两行 2  4 。

    但是给变量赋值是不会输出值得,故1+1;2+2;a=3;b=4 还是返回两行2 4。

    故:分隔符是 分号或者回车,纯赋值不会产生输出,表达式会以obase进制输出到标准输出

       a=1 无输出    (a=1)会输出1,因为()是表达式

     

    1)输出可以用print, 如print a,b,c,d

    2)可使用字符串 "abc\n"

    3)其他的话跟C类似 if for while return break continue {}

     

    4.2 函数

    define [可选void] 函数名(参数列表[如:a, b, array[]]) {

      auto m,n,l;

         .... return 45;

    }

    auto 声明的是局部变量,数组参数用array[]表示,返回值写了void的就不会打印最终返回值,如下

    复制代码
    1               define py (y) { print "--->", y, "<---", "0; }
    2               define void px (x) { print "--->", x, "<---", "0; }
    3               py(1)
    4               --->1<---
    5               0
    6               px(1)
    7               --->1<---
    复制代码

     

     

    还有一些数学库,如s(1), c(1),l(1)等,需要bc -l 在启动时导入数学库,此时默认的scale=20

    如输出派 π :echo "4*a(1)" | bc -l    注a(1)表示arctan反正切函数

    函数的一个例子:

    复制代码
     1               /* Uses the fact that e^x = (e^(x/2))^2
     2                  When x is small enough, we use the series:
     3                    e^x = 1 + x + x^2/2! + x^3/3! + ...
     4               */
     5 
     6               define e(x) {
     7                 auto  a, d, e, f, i, m, v, z
     8 
     9                 /* Check the sign of x. */
    10                 if (x<0) {
    11                   m = 1
    12                   x = -x
    13                 }
    14 
    15                 /* Precondition x. */
    16                 z = scale;
    17                 scale = 4 + z + .44*x;
    18                 while (x > 1) {
    19                   f += 1;
    20                   x /= 2;
    21                 }
    22 
    23                 /* Initialize the variables. */
    24                 v = 1+x
    25                 a = x
    26                 d = 1
    27 
    28                 for (i=2; 1; i++) {
    29                   e = (a *= x) / (d *= i)
    30                   if (e == 0) {
    31                     if (f>0) while (f--)  v = v*v;
    32                     scale = z
    33                     if (m) return (1/v);
    34                     return (v/1);
    35                   }
    36                   v += e
    37                 }
    38               }
    复制代码

     

     

    5.其他

    man bc最后还介绍了一下全局limits,环境变量,版本对比等,这里不累述,有兴趣直接里面看吧。

     

    6.其他一些计算命令

    1)dc  指令复杂些,更像是老式计算器

    2)expr 如expr 3 + 4  主要是后面每个数字符号之间都得加空格

    3)echo 如echo $((3+4)) echo $((16#CC)) 主要是多加()让他产生计算的意义

    4)awk 如'BEGIN{a=3+2;print a}'

     

    小结:

      bc是一个较为完整,提供了完备的类似C的编程语法的计算器,可以在交互式界面、文本或管道的方式方便的进行一些逻辑运算。支持多进制转换,任意精度调整,打印控制,函数支持,逻辑控制等。有疑惑的地方直接man bc即可有详细的解释。

     

    前言
    Linux版本:CentOS7.4  64位
    这里所有提到的shell都是bash shell,不过推荐你可以学学zsh
    Linux Shell进行数值计算的时候,
    使用expr,很麻烦,乘号啊什么的还需要转译,
    使用美刀符($)加中括号,却只局限于整数计算,
    这里介绍一下
    Linux的bc命令,它相当于Linux内建的计算器,可以计算整数,也可以进行浮点计算(小数)
    你可以叫它bc计算器,也可以叫bash计算器,它就是bash内置的计算器
    bc命令的基本用法
    你甚至可以把bc称作一种编程语言,它允许在命令行中输入浮点表达式,然后解释并计算该表达式,最后返回结果。bc计算器能够识别的东东:

    数字(整数和浮点数)
    变量(简单变量和数组)
    注释(以#或C语言中的/* */开始的行)
    表达式
    编程语句
    函数

    可以直接在命令行使用bc命令:
    [dong@cwd shell]$ 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'.
    12 * 3.14
    37.68
    8 * 3.14
    25.12
    quit
    1234567891011
    上面是bc计算器的欢迎界面,如果你觉得多余可以使用 -q参数把它去掉
    浮点数的小数位数是由内建变量scale控制的。
    必须将这个值设置为你希望在计算结果中保留的小数位,
    否则无法得到期望的结果
    [dong@cwd shell]$ bc -q
    3.14 /5
    0
    scale=4
    3.14 / 5
    .6280
    quit
    12345678
    scala变量的默认值是0
    在scala值被设置之前,bc计算结果不包含小数位。
    在将其值设置成4后,bc计算器显示的结果包含4位小数。
    -q参数可以不显示bc计算器冗长的欢迎信息。
    除了普通数字,bc计算器还能支持变量
    [dong@cwd shell]$ bc -q
    var1=10
    var1 * 4
    40
    var2 = var1 / 5
    print var2
    2
    println var2
    (standard_in) 6: syntax error
    quit
    1234567891011
    变量一旦被定义,就可以在整个bc 计算器会话中使用该变量了,print语句允许你打印变量和数字。
    在脚本中使用bc计算器
    现在你可能想问bc计算器是如何在shell脚本中帮助处理小数运算的?
    可以采用如下的格式在shell脚本中使用bc命令,并将返回结果赋给一个变量。
    基本格式如下:
    variable=$(echo "options; expression" | bc)
    1
    第一部分options允许你设置变量。如果你需要不止一个变量,可以用分号将其分开。
    expression参数定义了通过bc执行的数学表达式。
    OK,下面来个Demo:
    [dong@cwd shell]$ vim create_base_script.sh
    #!/bin/bash
    # 测试在脚本中使用bc命令
    # 可以用命令替换运行bc命令,燕将输出赋给一个变量,基本格式如下:
    # variable=$(echo "options; expression" | bc)
    # 第一部分options允许你设置变量。如果你需要不止一个变量,可以用分号将其分开。
    # expression参数定义了通过bc执行的数学表达式。这里有个在脚本中这么做的例子。
    var1=$(echo "scale=4; 3.44 /5" | bc)
    echo The answer is $var1
    12345678910
    这个例子将scale变量设置成4位小数,并在expression部分指定了特定的运算。运行这个脚本会产生如下输出:
    是不是很神奇啊?
    当然除了被赋值,那个变量(var3)也可以用于其他运算了
    看下面的例子:
    [dong@cwd shell]$ vim create_base_script3.sh
    #!/bin/bash
    # 在bc命令中测试使用变量
    var1=20
    var2=3.1415
    var3=$(echo "scale=4; $var1 * $var1" | bc)
    var4=$(echo "scale=4; $var3 * $var2" | bc)
    echo var3 = $var3
    echo var4 = $var4
    12345678910
    代码截图及运行结果如下:
    这个方法适用于较短的运算,
    但是有时你会涉及更多的数字。
    如果需要进行大量运算,在一个命令行中列出多个表达式就会有点麻烦。
    ·怎!么!办!呢!?
    你可以先把Demo敲一遍再看为什么
    最好的办法是使用内联输入重定向,
    它允许你直接在命令行中重定向数据。
    在shell脚本中,你可以将输出赋给一个变量:
    variable=$(bc << EOF
    options
    statements
    expressions
    EOF
    )
    EOF
    1234567
    文本字符串标识了内联重定向数据的起止。
    记住,仍然需要将bc命令的输出赋值给变量,
    下面来一个例子:
    [dong@cwd shell]$ sh create_base_script4.sh 
    #!/bin/bash
    # 测试bc命令在内联输入重定向下的使用
    var1=3.14
    var2=2.5
    var3=16
    var4=2.7
    var5=$(bc << EOF
    scale = 4
    a1 = ( $var1 * $var2)
    a2 = ($var3 * $var4)
    a1 + a2
    EOF
    )
    echo var5 = $var5
    1234567891011121314151617
    代码截图
    输出结果如下:
    EOF字符串标识了重定向给bc命令的数据的起止。
    当然,必须用美刀符$(xxx)来标识出用来给变量赋值的命令。
    ---------------------
    作者:荒野独行
    来源:CSDN
    原文:https://blog.csdn.net/daerzei/article/details/80341339
    版权声明:本文为博主原创文章,转载请附上博文链接!
     
     
    一: bc 的基本使用1. 基本运算符运算符与平时所用的 + - * / % 一样,其中指数运算使用 ^ 运算符。2. 进入 bc 解释环境#bcbc 1.06.95Copyright 1991-1994, 1997, 1998, 2000, 2004, 2006 Free Software Foundation, Inc.This is free software with ABSOLUTELY NO WARRANTY.For details type `warranty'.3+5856*78436856^4983449654%54
    3. 退出 bc 解释环境
    按Ctrl+D 或者 输入quit 退出 bc 命令
    quit
    4. 通过管道使用 bc 命令
    将所要计算的 通过echo命令传递给bc,如果有多条要执行的,则通过 ; 隔绝开。
    #echo "5+3" | bc8#echo "6*5;32/2" | bc3016
    5. 其他
    如果希望进入 bc 时候没有前面一大段提示可以开始的时候加入 -q。
    #bc -q
    二: 使用 bc 进行浮点数运算,进制转换
    1. 浮点运算 -- scale
    通过设定 scale 这个变量,可以控制除法,乘幂,取余结果的小数点精度值。scale默认为0,通过输入scale可以看出当前的值。
    scale
    03/40scale=13/4.72/3.6
    2. 进制转换 -- ibase obase
    ibase,obase 显而易见一个是输入进制,一个是输出进制。默认都是十进制。其中ibase为16的时候,ABCDF必须要大写,否则无效。
    ibase=16ffff0FFFF65535
    其他组合功能自己发挥啦。
    ---------------------
    作者:sinat_24543051
    来源:CSDN
    原文:https://blog.csdn.net/sinat_24543051/article/details/67636778
    版权声明:本文为博主原创文章,转载请附上博文链接!
     
     
    原文链接:https://blog.csdn.net/sinat_24543051/article/details/67636778
    bc 命令是任意精度计算器语言,通常在linux下当计算器用。


    它类似基本的计算器, 使用这个计算器可以做基本的数学运算。


    常用的运算:
    + 加法
    - 减法
    * 乘法
    / 除法
    ^ 指数
    % 余数


    语法
    bc(选项)(参数)


    选项值
    -i:强制进入交互式模式;
    -l:定义使用的标准数学库
    ; -w:对POSIX bc的扩展给出警告信息;
    -q:不打印正常的GNU bc环境信息;
    -v:显示指令版本信息;
    -h:显示指令的帮助信息。


    参数


    文件:指定包含计算任务的文件。 


    实例
    $ 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'.
    2+3
    5
    5-2
    3
    2+3*1
    5


    输入 quit 退出。


    通过管道符


    $ echo "15+5" | bc
    20


    scale=2 设小数位,2 代表保留两位:
    $ echo 'scale=2; (2.777 - 1.4744)/1' | bc
    1.30


    bc 除了 scale 来设定小数位之外,还有 ibase 和 obase 来其它进制的运算:
    $ echo "ibase=2;111" |bc
    7


    进制转换
    #!/bin/bash


    abc=192 
    echo "obase=2;$abc" | bc
    <pre>
    <p>
    执行结果为:11000000,这是用bc将十进制转换成二进制。</p>




    <pre>
    #!/bin/bash 


    abc=11000000 
    echo "obase=10;ibase=2;$abc" | bc


    执行结果为:192,这是用bc将二进制转换为十进制。


    计算平方和平方根: 
    $ echo "10^10" | bc 
    10000000000
    $ echo "sqrt(100)" | bc
    10

     

    转载于:https://www.cnblogs.com/machangwei-8/p/10388510.html

    展开全文
  • bc linux命令行神器 计算器
  • bc命令

    千次阅读 2018-06-21 16:43:06
    bc命令
  • Linux之bc命令使用详解

    千次阅读 2021-05-10 03:30:28
    quit # --在bc上常用的运算符有: + 加法 - 减法 * 乘法 / 除法(在没有设置scale精确度时候,自动取整) ^ 指数 % 求余数(取模) 在bc上还可以使用 ++ 变量 -- 变量 变量 ++ 变量 -- # bc bc 1.06 Copyright 1991...
  • Linux小数数值计算之bc命令

    万次阅读 2018-05-16 18:55:25
    bc命令的基本用法 在shell脚本是使用bc命令 前言 Linux版本:CentOS7.4 64位 这里所有提到的shell都是bash shell,不过推荐你可以学学zsh Linux Shell进行数值计算的时候, 使用expr,很...
  • 这是今天突然想到的一个事情,几年前我和一个朋友做一个开发板,然后我们需要完成的这个开发板有算力的要求,当时我们测试的时候就用了一个shell脚本来分析系统的算力。今天我突然想不起这个命令,...
  • Linux数学计算器—bc命令

    千次阅读 2020-03-07 23:16:20
    bc命令是一种支持任意精度的交互执行的计算器语言。bash内置了对整数四则运算的支持,但是并不支持浮点运算,而bc命令可以很方便的进行浮点运算,当然整数运算也不再话下。 2、安装 [root@RedHat_test ~]# yum ...
  • Linux bc 命令下提示 command not found

    千次阅读 2019-03-27 16:21:56
    Linux bc 命令下提示 command not found 出现这种问题是因为没有安装bc 计算器,这个时候我们只需要输入命令安装就可以了. 输入这条命令就可以了: [root@localhost /]# yum -y install bc 然后你在的输入bc,就可以...
  • 00. 目录 ...bash内置了对整数四则运算的支持,但是并不支持浮点运算,而bc命令可以很方便的进行浮点运算和整数运算。 bc的英文全拼为“ Binary Calculator ”。 02. 命令格式 用法:bc [选项] [参数] ...
  • Linux bc 命令

    2021-01-16 23:35:47
    [Linux 命令大全](/images/1590082124592.gif "Linux 命令大全") Linux 命令大全](/queryGroupArticle/525090658056452/525103003242112)bc 命令是任意精度计算器语言,通常在linux下当计算器用。它类似基本的计算器...
  • 一般的整数运算可以用 expr这个命令解决,expr命令一般用于整数值,但也可用于字符串。一般格式为: expr argument operator argument expr也是一个手工命令行计数器。 $expr 10 + 10 20 $expr 1500 + 900 ...
  • linux下的bc命令可以设置结果的位数,通过 scale. 比如: $ echo &quot;scale=4; 1.2323293128 / 1.1&quot; | bc -l 1.1202 但是scale只对除法、取余、乘幂有效,比如乘法就无效: $ echo &quot...
  • 前言Linux版本:CentOS7.4 64位这里所有提到的shell都是bash shell,不过推荐...这里介绍一下Linux的bc命令,它相当于Linux内建的计算器,可以计算整数,也可以进行浮点计算(小数)你可以叫它bc计算器,也可以叫bash...
  • Linux命令bc使用详解

    千次阅读 2021-01-14 04:04:41
    bc命令参数-i:强制进入交互式模式;-l:定义使用的标准数学库;-w:对POSIX bc的扩展给出警告信息;-q:不显示bc环境信息,直接运行命令;-v:显示指令版本信息;-h:显示指令的帮助信息。bc命令常用的运算符:+ ...
  • Linux命令之计算器bc

    2022-05-16 15:51:06
    `bc` 命令的全称是`Binary Calculator`,该命令支持任意精度的运算,并且是在交互执行的情况下。该命令能够很方便的进行浮点数运算和整数运算。
  • 【原创】linux命令bc使用详解

    千次阅读 2020-12-24 00:27:17
    最近经常要在linux下做一些进制转换,看到了可以使用bc命令,如下:echo "obase=10;ibase=16;CFFF" | bc用完以后就对bc进行了进一步的了解,man bc里面有详细的使用说明。1.是什么,怎么用bc - An arbitrary precision ...
  • Linux bc命令

    千次阅读 2018-07-09 09:13:26
    bc 命令是任意精度计算器语言,通常在linux下当计算器用。它类似基本的计算器, 使用这个计算器可以做基本的数学运算。常用的运算:+ 加法- 减法* 乘法/ 除法^ 指数% 余数语法bc(选项)(参数)选项值-i:强制进入交互式...
  • expr命令 expr命令允许在命令行上处理数学表达式,但特别笨拙。 如下是expr支持的运算规则。 [root@localhost ~]# expr 1 + 5 6 但在脚本或命令行上使用它们时任然有问题出现。比如乘法运算 [root@localhost ~]# ...
  • bc 命令是任意精度计算器语言,通常在linux下当计算器用。它类似基本的计算器, 使用这个计算器可以做基本的数学运算。 注意:输入 quit 退出该命令。 语法: bc(选项)(参数) 选项值 -i:强制进入交互式模式; ...
  • linux bc命令

    千次阅读 2013-12-09 10:53:10
    bc 命令: bc 命令是用于命令行计算器。... bc命令的输出被发送到标准输出。 -l 定义数学函数并且初始化值为20,取代默认值0。 filename 文件名,它包含用于计算的计算器命令,这不是必须的命令。 示例:  bc
  • shell命令:计算器bc命令

    千次阅读 2018-12-14 10:15:29
    一般情况下,我们使用不带任何参数的bc命令。 如果需要bc不输出提示信息,可以加上-q参数: bc -q 如果要使用强大的数学库,比如计算三角函数,需要加上-l参数: bc -q bc -l 因为bc本身是一个命令解释器,要退出...
  • shell中的浮点数运算之bc命令简介

    千次阅读 2020-03-31 12:01:28
    在shell中,当我们进行浮点数的运算,特别是用于浮点数间的比较大小时,往往会出现一些问题,这里使用bc命令,帮你解决困难 它的一般格式: var=`echo "option1;option2;...;expression"|bc` 其中options部分一般...
  • bc命令介绍

    千次阅读 2016-08-09 11:34:28
    bc命令介绍: let和expr不能处理浮点运算,而bc命令恰好弥补了这一点,bc提供精确的复杂计算功能,它是linux一个重要的工具,bc往往使用在管道里。 bc使用方法如下:  Variable=`echo “OPTIONS;OPERATIONS” | ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 115,287
精华内容 46,114
关键字:

bc命令