【Shell】Linux 基于命令行的数学与计算 数学与计算
需要一个计算器吗? Linux提供了一些命令行程序来为你计算数学真理。 expr stdin stdout -文件 --选项* --帮助 --版本 expr expressionexpr命令在命令行上执行简单的数学计算(和其他表达式评估): → expr 7 + 310 → expr '(' 7 + 3 ')' '*' 14 Shell字符需要引号 140 → expr length ABCDEFG 7 → expr 15 '>' 16 0 意思是假 每个参数必须由空白字符分隔。注意我们必须引用或转义对shell有特殊意义的任何字符。可以使用(已转义的)括号进行分组。expr的操作符包括:
对于布尔表达式,数字0和空字符串被视为假;任何其他值都被视为真。对于布尔结果,0是假,1是真。 bc stdin stdout -文件 --选项* --帮助* --版本 bc [options] [files]bc是一个基于文本的计算器,它读取每行一个的算术表达式,并打印结果。与大多数其他计算器不同,bc可以处理无限大小的数字和任意数量的小数位: → bc1+2+3+4+5 15 scale=2 (1 + 2 * 3 / 4) - 5 -2.50 2^100 1267650600228229401496703205376 ^D 程序员可能会喜欢切换基数来执行计算和转换,比如二进制、八进制、十六进制,甚至是自定义基数: → bcobase=2 结果显示为2进制 999 --- 1111100111obase=16 或者说是16进制 999 3E7 但是bc不止于此。它还是一个可编程计算器,你可以在其中定义自己的函数。下面是一个函数,它实现了代数中的二次公式,并打印给定方程的实数根,存储在一个名为*quadratic.*的文件中:[22] → cat quadratic.scale=2 define quadform ( a, b, c ) { root1 = (-b + sqrt(b^2 - 4*a*c)) / (2*a) root2 = (-b - sqrt(b^2 - 4*a*c)) / (2*a) print root1, " ", root2, "\n" } quadform(1, 7, 12) 求解 x2 + 7x + 12 = 0 将文件重定向到bc,然后查看结果: → bc < quadratic.-3.00 -4.00 在最强大的形式中,bc是一个算术编程语言。你可以为变量赋值、操作数组、执行条件表达式和循环,甚至可以编写提示用户输入值并执行任何你喜欢的数学操作的脚本。要查看完整的细节,请参阅手册页(manpage)。 有用的算术运算
dc stdin stdout - file -- opt --help --version dc [options] [files]dc(desk calculator)命令是一个逆波兰记法(RPN)、基于堆栈的计算器,从标准输入读取表达式并将结果写入标准输出。如果你知道如何使用惠普逆波兰记法计算器,那么一旦你理解了它的语法,使用dc就相对容易了。但如果你习惯于传统的计算器,dc可能会显得难以理解。我们只会介绍一些基本命令。 对于堆栈和计算器操作:
要弹出堆栈的顶部两个值,执行请求的操作,并推送结果:
要从堆栈顶部弹出值,执行请求的操作,并推送结果:
示例: → dc4 5 + p 打印4和5的和 9 2 3 ^ p 将2的3次方并打印结果 8 10 * p 乘以堆栈顶部的10并打印结果 80 f 打印堆栈 80 9 +p 弹出顶部的两个值并打印它们的和 89 |
|Archiver|手机版|深圳市光明谷科技有限公司|光明谷商城|Sunshine Silicon Corpporation ( 粤ICP备14060730号 ) |Sitemap
GMT+8, 2024-9-30 23:13 , Processed in 0.089917 second(s), 32 queries .
Powered by Discuz! X3.2 Licensed
© 2001-2013 Comsenz Inc.