(转)Linux基础------Shell数值计算的几种方法
Linux基础------Shell数值计算的几种方法
原文:http://blog.csdn.net/fu_wayne/article/details/21620639
在Linux下总会遇到数值计算问题,由于Linux下变量都属于弱变量,没有变量类型的概念(貌似脚本语言都是这样)。
例如定义一个变量:x=1
此时的变量x默认是一个字符串,即使看着像一个数字,所以当尝试用如下的方法去进行计算的时候,得到的结果却不是想要的
echo $x+=1 ------------> 输出:2+=1,并不是想要的结果2
Linux下有多种方法进行计算,一下摘录几例:
1.使用$[]
个人最常用的就是$[]方法进行计算,简单方便,适合不太复杂的计算。
- x=1
- echo $[$x+=1]
输出:2
2.使用expr
- x=1
- expr $x + 4
此命令所有计算的结果会以整数形式返回,例如上述的表达式变为:expr $x / 4 ,其结果为1,结果已经自动进行了取整操作。
- x=1
- ((y = x + 1,z = y + 1))
- echo $z
输出:3
- a=10
- b=10
- total=$((a*b))
- echo $total
- #!/bin/sh
- num=100;
- total=0;
- for((i=0;i<=num;i++));
- do
- ((total+=i));
- done
- echo $total;
- total=0;
- i=0;
- while((i<=num));
- do
- ((total+=i,i++));
- done
- echo $total;
- if((total>=5050));then
- echo "ok";
- fi
- var=1
- let "var+=1" 或 let var+=1 这种写法运算符间不能有空格
- echo $var
- output:
- 2
使用方法:
(转)Linux基础------Shell数值计算的几种方法的更多相关文章
- linux 执行shell脚本的4种方法总结
bash shell 脚本的方法有多种,假设我们编写好的shell脚本的文件名为hello.sh,文件位置在/data/shell目录中并已有执行权限. 方法一:切换到shell脚本所在的目录(此时, ...
- Linux文本行倒序排列6种方法
Linux文本行倒序排列6种方法 1. 命令方法: nl filename | sort -nr | cut -f2 这个方法很unix风格,使用多命令组合完成某种功能是典型的unix特点 单命令: ...
- Linux系统实现虚拟内存有两种方法:交换分区(swap分区)和交换文件
Linux系统实现虚拟内存有两种方法:交换分区(swap分区)和交换文件 交换文件 查看内存:free -m , -m是显示单位为MB,-g单位GB 创建一个文件:touch /root/swapfi ...
- linux进程后台运行的几种方法 - nohup/setsid/&
linux进程后台运行的几种方法 - nohup/setsid/& [转载] 我们经常会碰到这样的问题,用 telnet/ssh 登录了远程的 Linux 服务器,运行了一些耗时较长的任务 ...
- 执行shell脚本的几种方法及区别
执行shell脚本的几种方法及区别 http://blog.csdn.net/lanxinju/article/details/6032368 (认真看) 注意:如果涉及到脚本之间的调用一定要用 . ...
- Linux系统产生随机数的3种方法
Linux系统产生随机数的3种方法 方法一:生成8位随机数 [root@localhost ~]# echo "$RANDOM$(date +%N%t)" | md5sum | c ...
- Linux 下操作GPIO(两种方法,驱动和mmap)(转载)
目前我所知道的在Linux下操作GPIO有两种方法: 1.编写驱动,这当然要熟悉Linux下驱动的编写方法和技巧,在驱动里可以使用ioremap函数获得GPIO物理基地址指针,然后使用这个指针根据io ...
- Linux下进程通信的八种方法
Linux下进程通信的八种方法:管道(pipe),命名管道(FIFO),内存映射(mapped memeory),消息队列(message queue),共享内存(shared memory),信号量 ...
- Linux 下操作gpio(两种方法,驱动和mmap)
目前我所知道的在linux下操作GPIO有两种方法: 1. 编写驱动,这当然要熟悉linux下驱动的编写方法和技巧,在驱动里可以使用ioremap函数获得GPIO物理基地址指针,然后使用这个指针根据 ...
随机推荐
- 关于jeecms修改首页进行测试
由于要学习,jeecms的标签使用,那么必须要有一个测试页.关于首页如何使之用之当测试页. 修改的步骤,找到web.xml文件修改 <welcome-file-list> <welc ...
- arcgis for android常见问题回答
Q:arcgis for android最新版本是多少?(2014-7-18) Arcgis for android 10.2.3 sdk 百度盘下载地址:http://pan.baidu.com/s ...
- Ubuntu在用root账户使用xftp连接时提示拒绝连接
一般来说Linux不允许使用root账户连接,修改配置 vi /etc/ssh/sshd_config #Authentication: LoginGraceTime PermitRootLogin ...
- C#操作excel打印
using System; using System.Data; using System.IO; using System.Runtime.InteropServices; using System ...
- 团队内的沟通方式:网络 OR 当面
4月1日,我和老王稍微聊了聊关于互联网的工作方式,团队的成员不在一个地方,通过远程互联网的方式进行沟通是不是OK.现在确实有很多公司是有多地的分公司,子公司,不同的团队在不同的办公室中,甚至一个大团队 ...
- 「SDOI2017」新生舞会
题目链接 戳我 \(Describe\) 有一场舞会,n个男生,n个女生,要组成n对舞伴,男生i和女生j组队的适合度是\(a_{ij}\), 不适合度是\(b_{ij}\), 让你求\(max(\su ...
- linux 虚拟机 安装 php-7.0.2
1.安装依赖包 yum -y install libxml2 libxml2-devel openssl openssl-devel libjpeg libjpeg-devel libpng libp ...
- 【bzoj4987】Tree 树形dp
Description 从前有棵树. 找出K个点A1,A2,-,Ak. 使得∑dis(AiAi+1),(1<=i<=K-1)最小. Input 第一行两个正整数n,k,表示数的顶点数和需要 ...
- application的使用(实现计数器)
application在整个WEB项目中共享使用数据. 常用方法: getAttribute(); setAttribute();示列: <% Object count=applicati ...
- CentOS7.3托管磁盘虚拟机扩容数据磁盘
随着托管磁盘的上线,虚拟机支持的单块磁盘容量从1TB到达了4TB,客户对单块磁盘容量的需求量也会变的很大. 操作之前需要重点查看: 由于扩容磁盘的操作非同小可,一旦哪一步出现问题,就会导致分区损坏,数 ...