unix - shell 脚本算术运算

标签 unix shell ksh

一般来说,我将在 shell 脚本中使用 expr 进行算术运算。

有没有一种方法可以让我们在不使用 expr 的情况下在 shell 脚本中提出算术运算?

最佳答案

现代 shell (POSIX 兼容 = 在我看来是现代的)支持算术运算:
+ -/* 有符号长整型变量 +/- 2147483647。

将 awk 用于 double ,15 位重要数字它也可以用于 sqrt。

使用 bc -l 将精度扩展到 20 位有效数字。

您已经看到的 shell 语法 (zed_0xff):

a=$(( 13 * 2 ))
a=$(( $2 / 2 ))
b=$(( $a - 1 ))
a=(( $a + $b ))

awk 本身进行 double - 浮点 - 算术运算。
它还有 sqrt、cos、sin .... 见:

http://people.cs.uu.nl/piet/docs/nawk/nawk_toc.html

bc 有一些定义的函数和扩展的 presision 可以使用 -l 选项:

bc -l

例子:
echo 'sqrt(.977)' | bc -l

关于unix - shell 脚本算术运算,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3011819/

相关文章:

unix - 在unix shell中,如何将昨天的日期放入变量中?

linux - "sudo -i"和 "sudo su -"有什么区别

linux - Unix 对单个文件的读取和写入是原子序列化的吗?

windows - 相当于 BASH(等) 'type' 命令的 PowerShell?

linux - 别名不在 Shell 脚本中执行

linux - expect script + fit expect 以防不需要密码

linux - 在ksh中获取字符串的最后n个字符

linux - BASH-查找相同大小的文件,使用 cksum,删除 dupe 但保留其名称作为符号链接(symbolic link)

linux - fork 和僵尸进程

linux - 如何查找文件中的选项卡数?