Linux/unix不同shell环境下数值运算的处理
- 不同shell(bash,csh,ksh)下如何处理数值的运算
- 常用来数值运算的命令
- 关于运算结果精确到几位小数点的问题
$[]
需要机变一下,通过这种方式
echo $[10+2*$[$[3+1]*$[5-1]/2]]
注意中间不能有空格否则就会被错误解析。
我们用下面的形式实现:
$ echo $[8#17]
15
$ echo $[16#b]
11
echo $[7#6543210]
(())
expr命令
适用范围:包括bash、ksh、csh、sh的大部分shell,但有一点要特别注意就是一定要转义shell环境下的特殊字符。
必须对表达式 (Expression) 参数应用以下规则
用空格隔开每个项;
用 (反斜杠)放在 shell 需要转义的字符前;
对包含空格和其他特殊字符的字符串 (字符参与运算) 要用引号括起来;
通用的做法是:"(" ")" "|" "!" 和 "*" ">" "<"都需要转义。
awk命令
awk 'BEGIN{sum=10+2*((3+1)*(5-1)/2)} END{print sum}' /dev/null
至于awk都支持哪些数学函数,欢迎大家参照我后续的文章。
bc命令
$ bc
scale=4 #计算结果保留到小数点后四位
10/2
5.0000
obase=16 #计算的结果以十六进制表达
ibase=10 #输入的数值被识别为十进制
10/2
5.000
17/2
8.800
scale=0 #运算结果为整数
17/2
8
quit
# echo `echo "scale=4;10+2*((3+1)*(5-1)/2)" | bc `
26.0000
Linux/unix不同shell环境下数值运算的处理相关推荐
- Linux/UNIX不同shell环境下数组的处理
有遗漏和不当的地方请大家指正,谢谢! [关于声明] 比较通用的做法,如ksh和bash declare -a 数组名 注意在ksh下还支持另外一种独特的变量声明赋值语法比较特殊. set -A var ...
- Shell入门:掌握Linux,OS X,Unix的Shell环境
为什么80%的码农都做不了架构师?>>> 在Linux或类Unix系统中,每个用户和进程都运行在一个特定环境中.这个环境包含了变量.设置.别名.函数以及更多的东西.下面是对Sh ...
- Linux Shell环境下用jq命令处理json文件
有时候需要在Shell环境下处理json文件,这时使用jq命令非常方便. 安装 CentOS下可以直接通过yum安装: yum install jq -y 使用方法 假设有一个名为test.json的 ...
- arm linux 2.6下载,ARM+LINUX(montavista2.6.x)环境下SIMCOM5218使用
ARM+LINUX(montavista2.6.x)环境下 SIMCOM5218使用 http://blog.sina.com.cn/s/blog_4c796ed20100hpxg.html 一. 系 ...
- Nginx在Linux(centos7)环境下的下载与安装
Nginx在Linux(centos7)环境下的下载与安装 一.下载Nginx 1.免费的开源版本官方网址 2.选择需要下载的版本 二.安装Nginx 1.安装前准备(需要安装相关依赖库) 2.安装N ...
- shell编程之数值运算
shell编程是Linux学习中的难点,很多人学了几个月也是不明就里,那么今天我带着大家看一看,shell编程里面的数值运算 Shell 编程中的基本数值运算,这类运算包括: 数值(包括整数和浮点数) ...
- Linux挖坑脚本,Windows环境下写Linux sh脚本的一次挖坑和填坑
最近在研究Docker集群和安装的时候,需要准备若干台机器.所以我为节约时间,打算批量复制VM机器,然后用sh脚本命令执行机器名称和IP等基础配置信息的修改. 具体操作:我在windows环境下,用N ...
- linux(ubuntu)环境下安装及配置JDK
安装完IDEA之后遇到了问题,发现jdk安装完之后配置环境变量好困难,下面总结一下我的安装及配置方式: JDK下载链接:http://download.oracle.com/otn-pub/java/ ...
- linux centos7 mysql_Linux centos7环境下安装MySQL的步骤详解
Linux centos7环境下安装MySQL的步骤详解 安装MySQL mysql 有两个跟windows不同的地方 1).my.ini 保存到/etc/my.ini 2).用户权限,单独用户执行 ...
最新文章
- Linux查看进程内存状况
- 将xscj指定为当前数据库_(2)连接登陆数据库
- node开启子线程_真Node多线程
- Exchange2010 控制台提示您的权限不足,无法查看此数据
- idea 使用 git 教程
- HashMap 面试 21 问,这次要跪了!
- LRU LeetCode
- Angular的property binding一个例子
- 15个实用的grep示例
- Linux tp5伪静态设置
- 数据库安装时的log路径
- extjs java 教程,JAVA开发工具 - 在IntelliJ IDEA下开发ExtJS应用指南
- box-shadow用法;http://riny.net/lab/css3/box-shadow.html
- 办公室计算机应用简单知识,新入职办公室人员基础电脑操作知识.doc
- Windows和ubuntu互传文件
- CSS盒模型与box-sizing详解
- 康托尔点集matlab实数,康托尔集是什么。详细解释
- 大学生python作业代做_代写COMP9021作业、代做Python编程语言作业、代写Python实验作业、代做program留学生作业...
- Java ServiceLoader使用和解析
- python立方根求解_python – 如何获得立方根的整数?
热门文章
- zoj 1109 Language of FatMouse 解题报告
- EVE-NG安装步骤
- 分治法在排序算法中的应用(JAVA)--归并排序
- Extra Data after Last Expected Column:hawq建外表load数据报错
- java环境变量设置详解_JAVA环境变量配置详解(Windows)
- Mybatis多表模型
- python不同版本共存_多个python版本共存时的pip配置
- cas .net 重定向循环_接口测试平台接入企业cas(一)
- android studio课程管理系统,8 个最优秀的 Android Studio 插件
- arraylist扩容是创建新数组吗 java_Java编程之数组扩容